進程池與線程池

07.07自我總結

進程池與線程池

一.進程池與線程池的函數的導入

進程池:from concurrent.futuresimport ProcessPoolExecutor函數

線程池:from concurrent.futuresimport ThreadPoolExecutor線程

二.進程池與線程池的定義

1.進程池的定義

pool = ProcessPoolExecutor(3)code

  • 設置最大進程爲3
  • 建立進程池,指定最大進程數爲3,此時不會建立進程,不指定數量時,默認爲CPU和核數

pool.submit(方法,傳參)對象

若是傳的是兩個值進程

pool.submit(方法,參數1,參數2)資源

對於提交對象中有幾個經常使用的方法:it

res = pool.submit(方法,參數)import

res.result()線程池

result是個阻塞函數,直到子線程任務結束,且返回方法的結果方法

res.add_done_callback(方法2)

將結果進程執行的結果當一個參數傳入方法二中

2.線程池的定義

與進程池類似

3.注意

進程池定義和運行儘可能放在main裏面,比然可能會發生重複定義進程池

三.使用場景

線程方法相同,且須要重複使用,這個能夠用進程池或者線程池,能夠減小建立和關閉進程線程是所消耗的資源

相關文章
相關標籤/搜索