Python之多進程(multiprocessing)學習【4】:進程池

一. 解析

    進程池就是說把進程都放到一個池子裏,他會自動給你的任務分配進程,自動返回結果。

 

二. 代碼

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()

 

三. 運行 結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章