系统相关
首页 > 系统相关> > 如何在PyQt4进程中使用多核python?

如何在PyQt4进程中使用多核python?

作者:互联网

我正在pyqt4中编写一个必须读取并解析许多xml文件的应用程序.完成单线程处理需要花费一些时间来完成所有解析,并制作与该传入xml相对应的数千个python对象.我已经分析了代码,据我所知它是计算的,而不是I / O的.

我想使用工人农场模型(python中的?Process.Pool)将应用程序转换为多核模型以分散负载.

但是,我也希望能够通过信号通知工作人员更新gui的进度.

从我到目前为止所读的内容看来,QThread不具有多核功能(因为它在一个核上循环运行),但是我需要QThread来执行Signal,因此本质上我无法做到这一点.

我也许可以安排不需要从工作人员发出信号,而只是从农民那里发出信号,这可能意味着我可以继续进行下去,但是然后我想知道:我可以将python对象列表从一个Process返回到另一个Process吗?

解决方法:

>产生一个QThread.
> QThread可以将任务种植到多处理池中.你可能
使用具有回调参数的pool.apply_async().
>回调参数允许您指定一个函数
目标函数完成时调用.
>回调在QThread中运行,并被发送给
目标函数是其唯一的参数.
>每次回调函数运行时,您都可以将GUI更新为
指示进度.

标签:python,multiprocessing,pyqt4,signals-slots
来源: https://codeday.me/bug/20191009/1879553.html