我试图使用Pythonmultiprocessing
模块在两台不同计算机上的两个进程之间共享一个对象
问题是,对象似乎从来没有正确地反映在进程中
参考文件
https://docs.python.org/2.7/library/multiprocessing.html#multiprocessing.managers.SyncManager
以及
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.Namespace
我相信这将创建一个在两个客户机之间共享的对象,但事实似乎并非如此
class BosunManager(SyncManager):
def __init__(self, server=True, **kwargs):
# () -> None
super(BosunManager, self).__init__(**kwargs)
def register_functions(self):
self.x = self.Namespace()
服务器启动程序
bosun_manager = BosunManager(address=('', 50020), authkey='abracadabra')
bosun_manager.start()
bosun_manager.register_functions()
客户程序#1
from bosun.multi_process_manager import BosunManager
bm = BosunManager(server=False, address=('', 50020), authkey='abracadabra')
bm.connect()
bm.register_functions()
bm.x.x =10 # <---- SETTING X HERE
客户程序#2
from bosun.multi_process_manager import BosunManager
bm = BosunManager(server=False, address=('', 50020), authkey='abracadabra')
bm.connect()
bm.register_functions()
print bm.x.x
但是,Client#2总是显示print bm.x.x
行的AttributeError
目前没有回答
相关问题 更多 >
编程相关推荐