为什么Python中的共享价值会创建额外的流程

时间:2018-07-06 13:42:57

标签: python python-3.x parallel-processing shared-memory

通常,当我产生新进程时,我将只有1个进程内python代码。 但是当我使用共享内存(共享值)时,Python将在我自己的进程之外创建另一个新进程。

样本(显示1个过程):

p = multiprocessing.Process(target=mytarget)
p.daemon = True
p.start()

示例(显示2个进程,而我仅生成1个进程):

shared = Manager().Value(int, 0)
p = multiprocessing.Process(target=mytarget, args=(shared))
p.daemon = True
p.start()

有什么方法可以避免在Python中创建新的额外进程?

1 个答案:

答案 0 :(得分:2)

根据multiprocessing.Manager个文档,调用Manager()创建了单独的服务器进程,该进程负责管理在该管理器中共享的对象。这就是您可以看到的额外过程。

我没有非常仔细地阅读文档,但是您可以尝试使用共享内存的另一种方式,例如shared ctypes objectsmultiprocessing.Value