from multiprocessing import freeze_support,Pool
import time
def Foo(i):
time.sleep(2)
print('___time---',time.ctime())
return i+100
def Bar(arg):
print('----exec done:',arg,time.ctime())
if __name__ == '__main__':
freeze_support()
pool = Pool(3) #线程池中的同时执行的进程数为3
for i in range(4):
pool.apply_async(func=Foo,args=(i,),callback=Bar) #线程池中的同时执行的进程数为3,当一个进程执行完毕后,如果还有新进程等待执行,则会将其添加进去
# pool.apply(func=Foo,args=(i,))
print('end')
pool.close()
pool.join()#调用join之前,先调用close函数,否则会出错。执行完close后不会有新的进程加入到pool,join函数等待所有子进程结束