繁体   English   中英

为什么 Python 的 multiprocessing 模块只支持两种数据类型?

[英]Why does Python's multiprocessing module only support two data types?

根据 Python 的多处理文档

数据可以使用值或数组存储在共享内存映射中。

共享内存是否与通常分配给进程的内存不同? 为什么Python只支持两种数据结构?

我猜这与垃圾收集有关,并且可能与 GIL 存在的原因相同。 如果是这种情况,如何/为什么将ValueArray实现为例外?

我不是这方面的专家,所以绝对不是一个完整的答案。 我认为这需要考虑以下几点:

  • 进程有自己的内存空间,所以如果我们在进程之间共享“正常”变量并尝试写入每个进程将有自己的副本(可能使用 copy on write 语义)。
  • 共享内存需要某种抽象或原语,因为它存在于进程内存之外( SOURCE
  • 默认情况下, ValueArray是线程/进程安全的并发使用,通过使用锁保护访问,处理对共享内存的分配并保护它:)

随附的文件能够回答,

共享内存的处理方式与通常分配给进程的内存不同吗?


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM