本篇主要讲解multiprocessing中的重要模块-进程。
Process([group [,target [,name [,args [,kwargs]]]]])
这个类表示运行在一个子进程中的任务,应该使用关键字参数来指定构造函数中的参数。target是当前进程启动时执行的可调用对象,args是传递给target的位置参数的元组,而kwargs是传递给target的关键字参数的字典。如果省略args和kwargs参数,将不带参数调用target。name是为进程指定描述性名称额字符串。group参数未使用,值始终未None。这个构造函数简单的构造了一个Process进程,这与threading模块中创建线程的过程相似。
Process的实例p具有以下方法:
p.is_alive( )
如果p仍然运行,返回Trure。
p.join([timeout])
等待进程p终止,timeout是可选的超时期限。进程可以被连接无数次,但如果连接自身则会出错。
p.run( )
进程启动时运行的方法。 默认情况下,会调用传递给Process构造函数的target。定义进程的另一种方法是从Process类继承并衷心实现run()函数。
p.start()
启动进程。这将运行代表进程的子进程,并调用该子进程中的p.run()函数。
p.terminate()
强制终止进程。如果调用此函数,进程p将被立即终止,同时不会进行任何清理动作。如果进程p创建了他自己的子进程,这些进程将变为僵死进程。使用此方法是需特别小心。如果p保存了一个锁定或通过进程间通信被调用,那么终止它可能会导致死锁或I/O崩溃。
Process实例p也具一下数据属性。
p.authkey
进程的身份验证键。除非显示设定,这是由os.urandom()函数生成的32字符地字符串。这个键的用途是为涉及网络连接的底层进程间通信提供安全性。这类连接只有在两端具有相同的身份验证键时才能成功。
p.daemon
一个Boolean标志,指示进程是否是后台进程。当创建它的python进程终止时,后台进程将自动终止。另外,禁止后台进程创建自己的新进程。p.daemon的值必须在使用p.start()函数启动进程之前设置。
p.exitcode
进程的证书退出代码。如果进程仍然在运行,它的值为None。如果值为负数,-N表示进程由信号N所终止。
p.name
进程的名称
p.pid
进程的整数进程ID。
版权声明:本文为博主原创文章,未经博主允许不得转载。