通常,当我生成新进程时,我将只有一个进程中的python代码。但是当我使用共享内存(共享值)时,Python将在我自己的进程之外创建另一个新进程。
样本(显示一个过程):
p = multiprocessing.Process(target=mytarget)
p.daemon = True
p.start()
示例(显示两个进程,而我只生成了一个进程):
shared = Manager().Value(int, 0)
p = multiprocessing.Process(target=mytarget, args=(shared))
p.daemon = True
p.start()
有没有办法避免在Python中创建新的额外进程?
发布于 2018-07-06 05:54:36
根据multiprocessing.Manager
文档,调用Manager()
会创建单独的服务器进程,负责管理该管理器中共享的对象。这就是你能看到的额外的过程。
我没有仔细阅读文档,但是您可以尝试使用共享内存的替代方式,如共享ctype对象 (如multiprocessing.Value
或multiprocessing.Array
)。
https://stackoverflow.com/questions/51211769
复制