Aar*_*len 7 python thread-safety multiprocessing
我有以下几个在多个消费者之间共享的类(使用生产者/消费者方法).我的问题涉及这个类上调用的方法.我需要实现锁定还是经理类线程安全?
import multiprocessing as mp
from multiprocessing.manager import BaseManager
class SampleClass(object):
def __init__(self):
self._count = 0
# Does locking need to be implemented here?
def increment(self):
self._count += 1
BaseManager.register('SampleClass', SampleClass)
manager = BaseManager()
manager.start()
instance = manager.SampleClass()
jobs = []
for i in range(0, 5):
p = mp.Process(target=some_func, args=(instance,))
jobs.append(p)
p.start()
for p in jobs:
p.join()
Run Code Online (Sandbox Code Playgroud)
我想是这样。正如对另一个问题的评论所述:
manager.dict()这个过程安全吗?@LorenzoBelli,如果您询问对管理器的访问是否同步,我相信答案是肯定的。
multiprocessing.Manager()返回 的一个实例SyncManager,其名称也暗示了这一点!
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |