我有一个Python程序需要大约10分钟才能执行。因此,我使用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,但需要相当大的内存来维护其状态。
池有close
,terminate
和join
功能,我假设其中一个会终止进程。有谁知道哪个是告诉我的游泳池p
最好的方法我已经完成了它?
非常感谢你的帮助!