类:Process
最简单的使用代码:
from multiprocessing import Process
def f(name):
print('hello', name)
if __name__ == '__main__': # 判断是否为主程序
"""
创建Process对象, 表示一个子进程.
1. target参数表示子进程要做的任务(一个可执行对象)
2. args是一个元组, 表示传递给target的可执行对象的位置参数.
本例中就是把"bob"传递给函数f的name参数
"""
p = Process(target=f, args=('bob',))
p.start() # 启动子进程
p.join() # 等待进程终止
print("子进程已经终止")
Process
实例p
具有以下方法:
1. p.start()
启动子进程. 这将运行代表进程的子进程, 并调用该子进程中的p.run()
方法.
2. p.join([timeout])
等待进程p
终止, timeout
是可选的超时时间. 这个方法通常用户进程间的同步.
3. p.isalive()
测试进程p
是否还在运行, 如果扔在运行, 则返回True
4. p.terminate()
强制终止p
进程. 如果调用此方法, 进程p
将立即被终止, 同时不会进行任何清理工作. 如果再进程p
中也开启了子进程, 则这些子进程将成为僵死进程.
如果p
保存了一个锁定或有进程间通信, 那么终止可能会导致死锁或I/O崩溃.
Process
实例p
具有以下实例属性:
1. p.daemon
一个布尔标志, 指示这个进程是否为后台进程. 当创建他的python进程终止时, 后台进程将自动终止.
另外禁止后台进程创建自己的新进程. p.daemon
的值必须再进程启动前设置.
2. p.exitcode
进程的整数退出码. 如果进程仍在运行, 则它的值是None
. 如果是负数, -N
表示由信号N
所终止
3. p.name
进程的名字
4. p.pid
进程的整数ID