一. 解析
进程池就是说把进程都放到一个池子里,他会自动给你的任务分配进程,自动返回结果。
二. 代码
import multiprocessing as mp
def job(x):
return x*x
def multicore():
pool = mp.Pool(processes=2) # 指定两个核去帮我做事情
res = pool.map(job,range(10)) # job要迭代做10次,可以定义多个迭代的参数,自动分配给你定义的进程
print(res) # 用进程池之后就不需要queue,他可以直接返回
res = pool.apply_async(job,(2,))
print(res.get()) # 通过apply_async方式获得的需要get方法来获得,并且一次只能给你分配一个进程,在这一个进程中做同一个事情,后面的它是不会做的
multi_res = [pool.apply_async(job,(i,)) for i in range(10)] # 通过列表的迭代方式可以实现apply_async的多个迭代
print(multi_res)
print([res.get() for res in multi_res])
if __name__ == '__main__':
multicore()