此篇记录 线程相关的接口函数,此部分例程待补充。
1.Process结构体
功能:Process存储了通过StartProcess创建的进程信息。
type Process struct {
Pid int //当前进程id
handle uintptr //处理指针
isdone uint32 //如果进程正在等待则该值非0,没有等待该值为0
sigMu sync.RWMutex //锁
}
1. FindProcess函数
func FindProcess(pid int) (p *Process, err error)
功能:通过进程pid查找运行的进程,返回相关进程信息及在该过程中遇到的error
2. StartProcess函数
func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error)
功能:StartProcess启动一个新的进程,其传入的name、argv和addr指定了程序、参数和属性;
StartProcess是一个低层次的接口。os/exec包提供了高层次的接口;如果出错,将会是*PathError错误。
3. Kill方法
func(p *Process) Kill() error
功能:杀死进程并直接退出
4. Release方法
func (p *Process) Release() error
功能:释放进程p的所有资源,之后进程p便不能够再被使用,只有Wati没有被调用时,才需要调用Release释放资源
5. Signal方法
func (p *Process) Signal(sig Signal) error
功能:发送一个信号给进程p, 在windows中没有实现发送中断interrupt
5. Wait方法
func (p *Process) Wait() (*ProcessState, error)
功能:Wait等待进程退出,并返回进程状态和错误。Wait释放进程相关的资源。在大多数的系统上,进程p必须是当前进程的子进程,否则会返回一个错误。
ProcessState结构体
功能:ProcessState存储了Wait函数报告的进程信息
type ProcessState struct {
pid int
status syscall.WaitStatus //系统相关的状态信息
rusage *syscall.Rusage
}
1. Exited方法
func (p *ProcessState) Exited() bool
功能:判断程序是否已经退出
2. Pid方法
func (p *ProcessState) Pid() int
功能:返回退出进程的pid
3. String方法
func (p *ProcessState) String() string
功能:获取进程状态的字符串表示
4. Success方法
func (p *ProcessState) Success() bool
功能:判断程序是否成功退出,而Exited则仅仅只是判断其是否退出
5. Sys方法
func (p *ProcessState) Sys() interface{
}
功能:返回有关进程的系统独立的退出信息。并将它转换为恰当的底层类型(比如Unix上的syscall.WaitStatus),主要用来获取进程退出相关资源。
6. SysUsage方法
func (p *ProcessState) SysUsage() interface{
}
功能:SysUsage返回关于退出进程的系统独立的资源使用信息。主要用来获取进程使用系统资源
7. SystemTime方法
func (p *ProcessState) SystemTime() time.Duration
功能:获取退出进程的内核态cpu使用时间
8. UserTime方法
func (p *ProcessState) UserTime() time.Duration
功能:返回退出进程和子进程的用户态CPU使用时间
Signal结构体
功能:代表操作系统的信号,底层的实现是操作系统独立的,在Unix中是syscal.Signal。
type Signal interface {
String() string
Signal() // 同其他字符串做区别
}
var (
Interrupt Signal = syscall.SIGINT
Kill Signal = syscall.SIGKILL
)
在所有系统中都能够使用的是interrupe,给进程发送一个信号,强制杀死该进程
SyscallError结构体
功能:SyscallError记录了一个特定系统调用的错误,主要用来返回SyscallError的字符串表示。
type SyscallError struct {
Syscall string Err error
}
func (e *SyscallError) Error() string
功能:返回SyscallError的字符串表示