繁体   English   中英

Python池后的持久性进程

[英]Persistent Processes Post Python Pool

我有一个Python程序,大约需要10分钟才能执行。 因此,我使用来自multiprocessing Pool来加快multiprocessing速度:

from multiprocessing import Pool
p = Pool(processes = 6) # I have an 8 thread processor
results = p.map( function, argument_list ) # distributes work over 6 processes!

仅此而已,它运行起来要快得多。 愿上帝保佑Python! 所以我认为就是这样。

但是,我注意到,即使p超出范围,每次执行此操作时,进程及其相当大的状态仍会保留。 有效地,我造成了内存泄漏。 这些进程在我的系统监控器应用程序中显示为Python进程,该进程此时不使用CPU,但是需要大量内存来维持其状态。

池具有closeterminatejoin ,我假设其中之一将terminate进程。 没有人知道这是告诉我的游泳池最好的办法p ,我用它完成了吗?

非常感谢你的帮助!

Python文档中 ,您似乎需要执行以下操作:

p.close()
p.join()

map() ,指示工作人员应终止,然后等待他们这样做。

暂无
暂无

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

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