进程池

from multiprocessing import Manager,Lock,Pool


def func():

if __name__=='__main__':
pl1 =Pool(5) #起一个有5个进程的进程池
ret = pl1.map(func,rang(100)) #第二个参数一定要是一个可迭代的类型,自带close和join 。ret是所有结果的列表。

#方法2
ret = pl1.apply(func,args=(n,)) #会让进程同步执行,一个个排队执行。被调用的函数可以有返回值。

#方法3
ret = pl1.apply_async(func, args=(n,)) #async 异步,不等待子进程结束,主进程就可以结束。需要手动close() 和 join()。返回的结果也是一个列表,内容为地址。
ret.get() #得到被调用函数的返回值。
pl1.close() #结束进程池提交任务
pl1.join() #感知进程池中的任务执行结束。 使用close和join来把持与主进程的同步性。



原文地址:https://www.cnblogs.com/liu1983/p/13614700.html