小编tam*_*rok的帖子

为什么Python会为共享锁抛出“multiprocessing.managers.RemoteError”?

我正在使用 python 3.6.7 和 Ubuntu 18.04

运行以下脚本后,每个进程都有自己的共享锁:

from multiprocessing import Process, Manager


def foo(l1):
    with l1:
        print('lol')


if __name__ == '__main__':
    processes = []
    with Manager() as manager:
        for cluster in range(10):
            lock1 = manager.Lock()
            calc_args = (lock1, )
            processes.append(Process(target=foo,
                                     args=calc_args))
        for p in processes:
            p.start()

        for p in processes:
            p.join()

Run Code Online (Sandbox Code Playgroud)

我有一个奇怪的例外:

Process Process-2:
Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "temp.py", line 5, in foo …
Run Code Online (Sandbox Code Playgroud)

shared-objects locks python-3.x python-multiprocessing

7
推荐指数
1
解决办法
3556
查看次数