通常,当我产生新进程时,我将只有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中创建新的额外进程?
答案 0 :(得分:2)
根据multiprocessing.Manager
个文档,调用Manager()
创建了单独的服务器进程,该进程负责管理在该管理器中共享的对象。这就是您可以看到的额外过程。
我没有非常仔细地阅读文档,但是您可以尝试使用共享内存的另一种方式,例如shared ctypes objects或multiprocessing.Value