2010-09-21 51 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