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创建子进程往往父进程只是用来创建进程回收进程

转载于:https://www.cnblogs.com/ravener/p/9628806.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值