Python用multiprocessing模块创建进程,实现多进程的用法

Python用multiprocessing模块创建进程,实现多进程的用法

multiprocessing 模块创建进程

1.需要将要执行的事情封装为函数

2.使用multiprocessing模块中Process类创建进程对象

3.通过对象属性设置和Process的初始化函数对进程进行设置,绑定要执行的函数

4.启动进程,会自动执行进程绑定的函数

Process(target=函数名)

功能:创建进程对象

参数:name 进程名称,默认是Process-1

target 绑定函数

args 元组 给target函数按照位置传参

kwargs 字典 给target函数按照键值对传参

p.start()

功能:启动进程

target函数会自动执行,此时进程真正被创建

p.join([timeout])

功能:阻塞等待回收子进程

参数:超时时间

p.is_alive()

功能:判断进程生命周期状态,处于生命周期得到True 否则返回False

p.name: 进程名称,默认为Process-1

p.pid:  进程的PID号

p.daemon: 默认为False  主进程退出不会影响子进程执行,如果设置为True 则子进程会随着主进程结束而结束


使用multiprocessing创建子进程,同样子进程复制父进程的全部代码段,父子进程各自执行互不影响,父子进程有各自的运行空间

如果不使用join回收子进程则子进程退出后会成为僵尸进程

使用multiprocessing创建子进程往往父进程只是用来创建进程回收进程

1.如果子进程从父进程拷贝对象,对象和网络或者文件相关联,那么父子进程会使用同一套对象属性,相互有一定的关联性

2.如果在子进程中单独创建对象,则和父进程完全没有关联

创建自定义进程类

1.继承Process

2.编写自己的__init__,同时加载父类的init方法

3.重写run方法,可以通过生成的对象调用start自动运行

多进程优点:

可以使用计算机多核,进行任务的并发执行,提高执行效率

空间独立,数据安全

运行不受其他进程影响,创建方便

多进程缺点:

进程的创建的删除消耗的系统资源较多



最后编辑于:2019/10/28作者: 牛逼PHP

发表评论