我电脑上有一颗i7处理器,为了提高我的pyqt应用程序的时间计算性能,我尝试使用multiprocessing模块;当我在pyqt应用程序中执行以下操作:
import multiprocessing as multiprocessing
def foo(ii):
print ii
pool = multiprocessing.Pool(8)
pool.map(foo, range(10))
然后该应用程序生成了8个pyqt GUI,它们是第一个主窗口的克隆(总共有9个pyqt GUI,这当然是错误的,我想要做的是并行计算而不是克隆主GUI xD)。
我也尝试过joblib库(http://pythonhosted.org/joblib/),但问题仍然存在。
是否有一种方法可以在使用多进程或joblib模块的pyqt应用程序中进行并行计算?
感谢任何帮助。
if __name__ == '__main__'
保护来生成UI?无论如何,我认为你想要的是无法实现的,因为fork
会复制所有线程,包括UI线程(从而生成更多的UI)。你应该将并行计算放在“外部”进程中,并从UI中调用它。 - Bakuriu