python创建进程的三种方式
- fork创建
- multiprocessing 模块 Process类
- 继承Process类, 子类创建
1.fork创建
os.fork方法会创建出一个子进程,原进程(父进程)返回一个大于零的值(即ret > 0),这个值恰好是子进程的pid;而创建的新的子进程返回的值为零(即ret = 0)
fork方法创建进程不适用于window系统,window系统中没有这个系统调用
1 | import os |
执行效果:
1 | Parent Process ret = 2757 |
2.multiprocessing 模块 Process类
通过Multiprocessing模块中的Process类,创建Process对象,target参数传入的是子进程执行的函数戴码, 通过start方法开启子进程
1 | from multiprocessing import Process |
注:
fork方法创建的进程,主进程不会等待子进程结束再结束
Process类创建的进程,默认情况主进程会等待子进程都结束,再结束
3.继承Process类, 子类创建
创建一个子类, 继承Process类, 重写run方法, 实例出一个对象, 调用start方法运行子进程,
调用start方法,会自动调用run方法
1 | from multiprocessing import Process |