- mulitprocessing.Pool初始化参数可以指定进程池中的线程数
- 给进程池添加任务obj.apply_async(func,(arg,))
- 添加完任务后需要调用进程池的close方法
- Pool进程实现方式中主进程不会等待,执行完后就关闭,会导致子进程不能执行,所以需要调用Join方法
"""
python 进程池
"""
from multiprocessing import Process, Pool
import os
# create a new process pool with arg 2 means the process pool contain 2 process
pool = Pool(2)
# 使用多进程执行的任务
def test(arg):
print("%d---work,work...this is %s process"%(arg, os.getpid()))
for i in range(20):
print("putting job %d"%i)
pool.apply_async(test, (i,)) # async异步执行
pool.close() # 关闭进程池,相当于 不能够再次添加新任务了
pool.join()
# 当主进程的任务做完之后 立马结束,,,如果这个地方没join,会导致
# 进程池中的任务不会执行
print("main process runing.....")