簡體   English   中英

python多處理。 使用池或進程

[英]python multiprocessing. use pool or process

我有一個場景,我在主進程中有一個循環,它不斷地創建新對象。 我想在不同的過程中對每個創建的對象進行一些處理。

我嘗試創建一個共享字典,我不斷地用新對象填充它,並且我創建了一個循環遍歷字典中的對象的過程。

有一個更好的方法嗎? 由於我資源有限,上述方法有點慢。

也許每次創建對象時創建一個單獨的工作人員會更好? 如果是這樣,我怎么能做到這一點?

謝謝

進程是一個比線程更“重”的實體。 一個進程包含一個或多個線程。

通常,只有當我預見到在與生成數據的處理器(分布式系統)不同的處理器上處理數據的可能性時,我才會選擇進程而不是線程。 如果數據生成和數據處理(總是!)發生在同一個處理器上,那么使用線程會更有效率(數據共享和線程特定的同步原語更簡單,因為操作系統不需要考慮其他現有流程)。

線程數取決於硬件。 您可以使用線程池來獲得一些靈活性。

查看producer-consumerthread poolIPC並將這些概念映射到 python 語言功能( multiprocessingThreadPoolExecutor )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM