[英]python multiprocessing. use pool or process
我有一個場景,我在主進程中有一個循環,它不斷地創建新對象。 我想在不同的過程中對每個創建的對象進行一些處理。
我嘗試創建一個共享字典,我不斷地用新對象填充它,並且我創建了一個循環遍歷字典中的對象的過程。
有一個更好的方法嗎? 由於我資源有限,上述方法有點慢。
也許每次創建對象時創建一個單獨的工作人員會更好? 如果是這樣,我怎么能做到這一點?
謝謝
進程是一個比線程更“重”的實體。 一個進程包含一個或多個線程。
通常,只有當我預見到在與生成數據的處理器(分布式系統)不同的處理器上處理數據的可能性時,我才會選擇進程而不是線程。 如果數據生成和數據處理(總是!)發生在同一個處理器上,那么使用線程會更有效率(數據共享和線程特定的同步原語更簡單,因為操作系統不需要考慮其他現有流程)。
線程數取決於硬件。 您可以使用線程池來獲得一些靈活性。
查看producer-consumer 、 thread pool 、 IPC並將這些概念映射到 python 語言功能( multiprocessing 、 ThreadPoolExecutor )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.