Python池中的持久进程
我有一个Python程序,执行大约需要10分钟。为了加快速度,我使用了来自multiprocessing
的Pool
。
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,但却占用了大量内存来维持它们的状态。
Pool有close
、terminate
和join
这几个函数,我想其中一个应该可以结束这些进程。有没有人知道我该用哪个方法来告诉我的池p
我已经用完它了?
非常感谢你的帮助!