我正试图写一个test to compare methods for inter process communication in python,而OSX和windows给了我第一个示例的问题。它几乎是使用队列的手动示例。在
我用python2.7.9和3.4.1在linux上编写了所有代码。而且效果很好。在
#!/usr/bin/env python
import multiprocessing as MP
...
self.mpq_main = MP.Queue()
self.mpq_net = MP.Queue()
self.mpt_net = MP.Process( target=self.start_t_net, args=(self.mpq_main, self.mpq_net) )
...
def start_t_net(self, qin, qout):
self.NET = gcbtestnet.GCBTestNET(qin, qout);
然后在osx和windows上进行测试时,我得到了错误。此问题适用于windows one:
^{pr2}$如果试图将对象引用作为进程参数传递,则通常会出现该错误,但我只传递multiprocess.Queues
个实例。在
我发现了我的(严重)错误。当我将进程从简单方法移到对象时,我忘记了将所述对象的初始化移动到
.Process()
调用,并将其保存在类方法中。由于某些原因,它在linux上工作,但在windows上不行。在这是修正https://github.com/gcb/python_multiprocess_test/commit/8565384e5cc6cadf959c335b5db0693e646f6777的差异
相关问题 更多 >
编程相关推荐