进程池Pool原理及回调函数

import  os
from multiprocessing import Pool #导入进程池
def funk(n): #定义一个函数
for i in range(5): #重复多少遍
print(n)
if __name__ =="__main__":
pool= Pool(5) #进程池中的进程数量
pool.map(funk,range(20)) #range(20) 表示有二十个进程 每次最多开启五个进程,一个进程结束后,下一个进程才能进行

###############################################################################

def funk1(n):
print("in funk1", os.getpid())
return n*2
def funk2(nn):
print("in funk2",os.getpid())
print(nn)

if __name__ == "__main__":
p = Pool(5)
p.apply_async(funk1,args=(10,),callback=funk2) #回调函数 funk不能传参数 调用的是前面函数的返回值
p.close()
p.join()
posted @ 2022-03-15 14:17  张丶先森  阅读(130)  评论(0)    收藏  举报