# apply_async:
import time
from multiprocessing import Pool
def fn(i):
time.sleep(0.5)
return i*i
if __name__ == '__main__':
p = Pool(5)
l = []
for i in range(10):
ret = p.apply_async(fn,args=(i,))
l.append(ret)
# print(ret.get()) # 阻塞 get 方法会等待 fn 执行完毕拿到返回值才会往下走,这里从异步变成了同步
# print('asd')
for i in l: # 解决方法.
i.get()
print('asd')
# map:
import time
from multiprocessing import Pool
def fn(i):
time.sleep(0.5)
return i*i
if __name__ == '__main__':
p = Pool(5)
ret = p.map(fn,range(10))
print(ret) # 将计算结果一次性打印出来