我的主要问题:你可以有多个进程写入一个循环中的一个队列,并使用该队列来更新GUI?跨多个进程的共享队列
我一直在寻找关于队列和多个进程的帖子,我想知道如果任何人有任何想法,如果它是可能的或有利的使用它们的组合。我的思考过程是这样的:由于所有的处理器现在都具有〜8个内核,因此如果程序的任何部分在计算上都很昂贵,我制作的大多数程序都应该具有访问这种功能的能力。我想要一个GUI,它可以同时显示几个不同进程的进度。我希望每个进程尽可能多地使用处理器,但是他们都必须同时写入GUI,所以从我读过的内容来看,似乎队列将为此工作。
解决这个问题的最好方法是让多个进程通过管道与队列通信,并让队列更新GUI?
目前我正在使用pyQt信号和插槽,但我觉得这是现代时代的糟糕解决方案,因为它只使用一个CPU内核。
那么你在这里建议的东西类似于我已经实施的东西?我有一个信号从某个插槽发出,这就是GUI的更新方式。但是,这会将我的一个CPU以100%运行数小时。我想使用多个内核,以便缩短时间并创建更多的进程。 – chase 2013-03-22 17:14:08
您需要分离计算成本较高的操作,并让它们在单独的线程/进程中执行,然后让它们在完成工作后向事件分派线程“回报”,可能会获取某种锁以避免内存损坏。 – 2013-03-22 17:16:05