一. 解析
進程池就是說把進程都放到一個池子裏,他會自動給你的任務分配進程,自動返回結果。
二. 代碼
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()