我在一个受CPU限制的应用程序中有一些任务,我想使用多处理模块来使用多核处理器。 我承担了一项重大任务(视频文件分析),并将其拆分为几个较小的任务,这些任务被放入队列并由工作进程完成。 我想知道的是如何从这些工作进程向主进程报告进度。例如,我需要他们发送“我在1000分钟的文件1分析”。进行此类进度报告的最佳方式是什么?
答案 0 :(得分:14)
我建议使用multiprocessing.Queue:没有比工作进程更容易发布更新(可能是其进度更新的各个方面的元组),而主进程只是等待这样的消息,何时他们来更新GUI(或文本UI ;-)以保持用户对进度的评价。