Python多处理SyncManager客户端和服务器连接

时间:2017-02-06 09:05:36

标签: python-2.7 python-multiprocessing

我想使用python Multiprocessing SyncManager与父进程和子进程通信。在父进程中,我以这种方式创建管理器:

class JobQueueManager(SyncManager):
pass

JobQueueManager.register('get_job_q', callable=lambda: job_q)
JobQueueManager.register('get_result_q', callable=lambda: result_q)
...
manager = JobQueueManager(address=('127.0.0.1', port), authkey=authkey)
manager.start()
print 'Server started at port %s' % port
return manager

在孩子身上:

manager = ServerQueueManager(address=(ip, port), authkey=authkey)
manager.connect()

但是当我用Subprocess('child.py')函数启动它时,子进程中的manager.connect()会挂起。当我从Linux CLI运行子进程时,它们是完美的。

从CLI,Subprocess方法或Process(target = f,args =('bob',))函数运行进程以及何时使用SyncManager时有什么区别?

0 个答案:

没有答案