gpt4 book ai didi

python - Python 池后的持久进程

转载 作者:行者123 更新时间:2023-12-02 11:36:12 24 4
gpt4 key购买 nike

我有一个 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,而是使用大量内存来维护其状态。

池具有closeterminatejoin函数,我假设其中一个函数会终止进程。有谁知道什么是告诉我的池p我已经完成的最佳方式?

非常感谢您的帮助!

最佳答案

来自Python docs ,看起来你需要这样做:

p.close()
p.join()

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

关于python - Python 池后的持久进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com