multiprocessing 模块创建进程

multiprocessing使用流程

  1. 需要将要执行的事情封装为函数
  2. 使用multiprocessing模块中Process类创建进程对象
  3. 通过对象属性设置和Process的初始化函数对进程进行设置,绑定要执行的函数
  4. 启动进程,会自动执行进程绑定的函数
  5. 完成进程的回收

Process()
功能:创建进程对象
参数:
name 进程名称 Process-1
target 绑定函数
args 元组 给target函数按照位置传参
kwargs 字典 给target函数按照键值对传参

p.start()
功能:启动进程
* target函数会自动执行,此时进程真正被创建

p.join([timeout])
功能:阻塞等待回收子进程
参数:超时时间,一定时间过后不再阻塞,如果子进程在超时间过后才结束,该子进程会成为僵尸进程

import multiprocessing as mp
from time import sleep
a = 1
def fun():
    sleep(3)
    print('a=',a) #1
    a = 1000
    print('子进程事件')

#创建进程对象
p = mp.Process(target = fun)

#启动进程
p.start() #会执行fun,且只执行fun

sleep(2)
print('这是父进程')

#回收进程
p.join()

print('parent a=',a) #1
  • 使用multiprocessing创建子进程,同样子进程复制父进程的全部代码段,父进程各自执行互不影响,父子进程有各自的运行空间
  • 如果不使用join回收子进程则子进程退出后会成为僵尸进程
  • 使用multprocessing创建子进程往往父进程只是用来创建进程回收进程

猜你喜欢

转载自www.cnblogs.com/ravener/p/9628806.html