通常,当我生成新进程时,我只有1个进程内python代码。 但是当我使用共享内存(shared memory,shared value)时,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中创建新的额外进程?
根据 multiprocessing.Manager 文档调用 Manager() 创建单独的服务器进程,负责管理该管理器中共享的对象。这就是你能看到的额外过程。
multiprocessing.Manager
Manager()
我没有仔细阅读文档,但是您可以尝试使用共享内存的其他方法,例如。 shared ctypes objects 喜欢 multiprocessing.Value 或 multiprocessing.Array
multiprocessing.Value
multiprocessing.Array