2010-09-21 66 views
9

我有一些應用程序中的CPU綁定任務,我想使用多處理模塊來使用多核處理器。 我承擔了一項艱鉅的任務(視頻文件分析),並將其分解爲幾個較小的任務,這些任務放入隊列並由工作進程完成。 我想知道的是如何從這些工作進程向主進程報告進度。例如,我需要他們發送「我在1000毫秒的文件1分析」。進行此類進度報告的最佳方式是什麼?Python多處理:來自進程的進度報告

+0

您是否在問使用'logging'模塊? – 2010-09-21 01:58:24

+0

不,我需要工作進程的進度報告以用於主進程。我使用「多處理」模塊。 – 2010-09-21 02:46:08

+0

主進程中工作進程的進度報告可以通過'logging'模塊完成。你爲什麼說不能完成? – 2010-09-21 13:27:44

回答

14

我會推薦一個multiprocessing.Queue:沒有什麼比工作進程更容易發佈他們的更新(大概是與進度更新的各個方面有關的元組),而主進程只是等待這些消息, GUI(或文本UI ;-)保持用戶對進度的評估。

+0

謝謝。我認爲這是最簡單的解決方案。我目前正在實施它,如果出現問題,我會再次詢問。對不起,但我不能投你的帖子,因爲我沒有足夠的聲譽。 – 2010-09-21 03:01:49

+0

@Marc,我相信有11個或更多(我看你18歲),你可以upvote。如果它不適合你,你可能想問一下meta! – 2010-09-21 15:05:51

+0

昨天我還不夠。現在我upvoted你的帖子:) – 2010-09-22 00:26:20