创建进程(函数)
模块
process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建。
multiprocess (是python中一个操作、管理进程的包,包含了和进程有关的所有子模块,分为四个部分:创建进程部分,进程同步部分,进程池部分,进程之间数据共享)
模块参数
1 group参数未使用,值始终为None
2 target表示调用对象,即子进程要执行的任务
3 args表示调用对象的位置参数元组,args=(1,2,'egon',)
4 kwargs表示调用对象的字典,kwargs={'name':'egon','age':18}
5 name为子进程的名称
方法
1 p.start():启动进程,并调用该子进程中的p.run()
2 p.run():进程启动时运行的方法,正是它去调用target指定的函数,我们自定义类(class)的类中一定要实现该方法
3 p.terminate():强制终止进程p,不会进行任何清理操作,如果p创建了子进程,该子进程就成了僵尸进程,使用该方法需要特别小心这种情况。如果p还保存了一个锁那么也将不会被释放,进而导致死锁
4 p.is_alive():如果p仍然运行,返回True
创建进程(函数)
from multiprocessing import Process
p = Process(target=函数名字)
p.start () 开启进程
os
os.getpid()进程号
os.getppid()父进程
if __name__ == '__main__':开启理由
win:子进程要import 父进程所在模块
如果不写就会无限开启子进程(不会停)
join (阻塞方法),等子进程结束再运行
def(函数进程)
target=函数(使函数正常运行)
args=(i,)(以元组的方式进行传值,)
注意:def wsy(参数)
p.join([timeout]):主线程等待p终止(强调:是主线程处于等的状态,而p是处于运行的状态)。timeout是可选的超时时间,需要强调的是,p.join只能join住start开启的进程,而不能join住run开启的进程
![](https://mubu.com/document_image/3f738f0a-3db8-4835-a5cd-b2f6bf1fd413-4903152.jpg)
![](https://mubu.com/document_image/bb25b66d-7cbb-4e12-b420-a3095e1bf7fe-4903152.jpg)
![](https://mubu.com/document_image/72e4669a-2183-45f9-a048-b28cb620ed25-4903152.jpg)
class 类
![](https://mubu.com/document_image/bd0fb527-f011-4138-8d22-c4629c4a808e-4903152.jpg)