- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2020-12-30 09:45:11
|
显示全部楼层
本帖最后由 15195775117 于 2020-12-30 09:50 编辑
三、“进程池”代码固定套路
题设:现在有10个执行函数 f 的任务,使用3个进程
from multiprocessing import Pool
import time,os
def f(name):
print('子进程(%s)打印参数:%s'%(os.getpid(),name))
time.sleep(0.1)
if __name__=="__main__":
p=Pool(3)#分配3个进程
for i in range(10):
p.apply_async(f,args=(i,))#使用非阻塞方式调用函数
p.close()#关闭Pool,使其不再接受新的任务
p.join()#主进程阻塞,等待子进程退出,必须在close或terminate之后使用
print('所有子进程结束')
#其他函数:
# p.apply(func,args,kwds)#阻塞方式调用函数
# p.terminate()#终止
# 输出结果:
# 子进程(27408)打印参数:0
# 子进程(27384)打印参数:1
# 子进程(27408)打印参数:2
# 子进程(12972)打印参数:3
# 子进程(27384)打印参数:4
# 子进程(27408)打印参数:5
# 子进程(12972)打印参数:6
# 子进程(27384)打印参数:7
# 子进程(27408)打印参数:8
# 子进程(12972)打印参数:9
# 所有子进程结束
|
|