multiprocessing.shared_memory 是否需要锁定?

use*_*181 5 python shared-memory multiprocessing python-3.x

我正在学习 Python 中的共享内存,尤其是 python 3.8 模块multiprocessing.shared_memory。我在文档中没有提到锁定。(虽然父模块multiprocessing, 有一个Lock对象)。是否在multiprocessing.shared_memory或的底层代码中以某种方式处理了锁/dev/shm?也就是说,SharedMemory在没有显式锁定的情况下同时从多个进程写入对象是否安全?提前感谢您的澄清。

https://docs.python.org/3/library/multiprocessing.shared_memory.html

小智 -2

Array() 类应该类似于共享内存的同步版本,所以我不希望这样。正如它所说:一块没有同步开销的共享内存,适用于您不需要它或想要实现自己的内存的情况。

  • 您的答案更多的是猜测,而不是所问问题的答案,更多信息可能会非常有帮助。例如,您可以指向 https://github.com/python/cpython/blob/3.9/Lib/multiprocessing/shared_memory.py#L49 并指出用于创建共享内存的方法是低级函数,并且在当前实现中,看起来没有任何围绕共享内存访问的同步原语 (3认同)