Python - 多处理,处理内存中的不同对象,不清楚如何继续

时间:2015-05-02 22:40:17

标签: python python-multiprocessing

我有一些对象产生一个子进程来偶尔检查,更新和传播它们的状态。这些子进程使用了​​我在主进程中使用的一些相同的函数。

这里的问题是子进程不在内存中的同一个对象上工作。在某些情况下,这些函数很复杂,它们会改变对象状态。还有很多相互依存关系。

所以,我已经阅读了管理器,命名空间,数组,值,管道,队列等来管理所有这些,但是将所有对象属性转换为值似乎有点过分,例如,然后如果没有告诉函数使用自身属性而不是注入变量,那么每个函数都需要注入一个子进程和一个默认值。要么具有重复的功能,要么具有相同的功能,但只有一个用于子进程,另一个用于主进程。

似乎我错过了一些简单的事情。只需要一个类在子进程中检查自己,这就是很多开销。有没有办法让子进程在同一个对象上工作?我试过用args传递它并且没有用。

注意 - 我使用子进程是因为某些检查会执行需要花费时间的shell命令并挂起gui。我尝试使用线程并且它仍然挂起,因此多处理似乎就是答案。

感谢任何帮助。

0 个答案:

没有答案