如何在Python多处理中的子进程中运行计算密集型类并通过主进程访问它?

问题描述 投票:0回答:1

我目前有两个类,一个是PyQt中的类,另一个是几何引擎(计算密集型)的类。如果我将它们都放在主进程中,几何引擎将导致 QT 界面无响应。所以我想把它们分成两个进程,一个负责显示界面,另一个负责计算。 PyQt接口需要调用几何引擎类中的函数,因此它们需要进行通信。

我正在尝试编写一个库,允许代码无需修改即可迁移到子进程,但是数据传输开销太大,并且遇到了问题 TypeError: Cannot pickle 'SwigPyObject' object。我正在考虑更好的解决方案。

我认为子进程应该维护一个消息队列,但我不确定具体如何实现。

python multithreading multiprocessing python-multiprocessing
1个回答
0
投票

我找到了一个名为nogil的项目,我认为这可以解决我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.