python - 多处理不共享代理对象python
问题描述
我正在尝试使用 Pythonmultiprocessing
模块在两台不同计算机上的 2 个进程之间共享一个对象。
问题是对象似乎永远不会在流程中正确反映。
参考文档
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
但是客户端 #2始终显示该print bm.x.x
行的 AttributeError
解决方案
推荐阅读
- python - 为什么此 api 请求仅在在线部署时才返回超时?
- facebook-graph-api - Facebook 移动应用程序如何签署对 Facebook 服务器的 API 调用以进行身份验证?
- ios - 快速执行队列
- python - 切换按钮以更改其类之外的某些东西的属性 - Kivy
- sql - 选择行序列
- nsis - NSIS 自定义页面 MessageBox 跳转到下一页
- scheme - 为什么是这样的 if 语句?
- python - 蟒蛇/美丽的汤。从中提取所有文本
- h2 和 h3 标签之间的标签
- javascript - 刷新并转到php上的上一页
- python - Pandas:计算数据框中所有行与特定行之间的差异