python manager与basemanager_Python managers.BaseManager方法代码示例

# 需要导入模块: from multiprocessing import managers [as 别名]

# 或者: from multiprocessing.managers import BaseManager [as 别名]

def _get_manager_class(self, register_callables=False):

"""

Returns a new 'Manager' subclass with registered methods.

If 'register_callable' is True, defines the 'callable' arguments.

"""

class _EvaluatorSyncManager(managers.BaseManager):

"""

A custom BaseManager.

Please see the documentation of `multiprocessing` for more

information.

"""

pass

inqueue = queue.Queue()

outqueue = queue.Queue()

namespace = Namespace()

if register_callables:

_EvaluatorSyncManager.register(

"get_inqueue",

callable=lambda: inqueue,

)

_EvaluatorSyncManager.register(

"get_outqueue",

callable=lambda: outqueue,

)

_EvaluatorSyncManager.register(

"get_state",

callable=self._get_secondary_state,

)

_EvaluatorSyncManager.register(

"set_state",

callable=lambda v: self._secondary_state.set(v),

)

_EvaluatorSyncManager.register(

"get_namespace",

callable=lambda: namespace,

)

else:

_EvaluatorSyncManager.register(

"get_inqueue",

)

_EvaluatorSyncManager.register(

"get_outqueue",

)

_EvaluatorSyncManager.register(

"get_state",

)

_EvaluatorSyncManager.register(

"set_state",

)

_EvaluatorSyncManager.register(

"get_namespace",

)

return _EvaluatorSyncManager

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
class MonitoringProcess: def __init__(self): self.conn1, self.conn2 = Pipe() self.monitor = True self.process_start(self.detection_status) def set_monitor(self): self.com_dict.monitor = False def process_start(self, func): with Manager() as manager: self.com_dict = manager.Namespace() p = Process(target=func, args=(self.com_dict,)) p.start() def detection_status(self, com_dict): # some code ... com_dict.a = 1 Process Process-2: Traceback (most recent call last): File "C:\Python38\lib\multiprocessing\managers.py", line 827, in _callmethod conn = self._tls.connection AttributeError: 'ForkAwareLocal' object has no attribute 'connection' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Python38\lib\multiprocessing\process.py", line 315, in _bootstrap self.run() File "C:\Python38\lib\multiprocessing\process.py", line 108, in run self._target(*self._args, **self._kwargs) File "F:\E\python_learn\我的框架\自动化框架2\monitoring.py", line 24, in detection_status com_dict.a = 1 File "C:\Python38\lib\multiprocessing\managers.py", line 1143, in __setattr__ return callmethod('__setattr__', (key, value)) File "C:\Python38\lib\multiprocessing\managers.py", line 831, in _callmethod self._connect() File "C:\Python38\lib\multiprocessing\managers.py", line 818, in _connect conn = self._Client(self._token.address, authkey=self._authkey) File "C:\Python38\lib\multiprocessing\connection.py", line 500, in Client c = PipeClient(address) File "C:\Python38\lib\multiprocessing\connection.py", line 702, in PipeClient _winapi.WaitNamedPipe(address, 1000) FileNotFoundError: [WinError 2] 系统找不到指定的文件。
最新发布
07-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值