繁体   English   中英

Python 多处理在不退出文件的情况下失去活动

[英]Python multiprocessing loses activity without exiting file

我有一个问题,my.py 文件通过多处理使用最大 CPU,在不退出 .py 文件的情况下停止运行。

我正在执行一项繁重的任务,该任务使用旧 MacBook Pro (2012) 中的所有内核。 该任务一开始运行良好,我可以直观地看到四个 python3.7 任务填充了活动监视器 window。 然而,大约 20 分钟后,这四个 python3.7 从活动监视器中消失了。

最奇怪的部分是 multiprocessing.py 文件仍在运行,即它从未抛出未捕获的异常或退出文件。

你们对发生的事情有什么想法吗? 我的猜测是 1)这很可能是脚本中的错误,以及 2)旧计算机过热。

谢谢!

编辑:下面是多进程代码,其中要执行的多进程 function 是func ,其参数为列表。 我希望这有帮助!

import multiprocessing

def main():
    pool = multiprocessing.Pool()
    for i in range(24):
        pool.apply_async(func, args = ([], ))
    pool.close()
    pool.join()

if __name__ == '__main__':
    main()

使用上下文管理器正确处理关闭进程。

from multiprocessing import Pool

def main():
    with Pool() as p:
        result = p.apply_async(func, args = ([], ))
        print(result)

if __name__ == '__main__':
    main()

我不确定你对for i in range()部分做了什么。

暂无
暂无

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

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