PythonHackingBook1
PythonHackingBook1 copied to clipboard
2.3 多进程编程的Pool.py 是否缺了主函数?
from multiprocessing import Process,Pool import time
def Foo(i): time.sleep(2) return i+100
def Bar(arg): print('-->exec done:',arg)
if name == "main": pool = Pool(5) #允许进程池同时放入5个进程
for i in range(10):
pool.apply_async(func=Foo, args=(i,),callback=Bar) #func子进程执行完后,才会执行callback,否则callback不执行(而且callback是由父进程来执行了)
print('end')
pool.close()
pool.join() #主进程等待所有子进程执行完毕。必须在close()或terminate()之后。