Python多重处理会在不退出文件的情况下失去活动性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python多重处理会在不退出文件的情况下失去活动性相关的知识,希望对你有一定的参考价值。
我有一个问题,我的.py文件通过多重处理使用了最大的CPU,停止运行而不退出.py文件。
我正在执行繁重的任务,该任务使用旧版MacBook Pro(2012)中的所有内核。首先,该任务运行良好,在这里我可以直观地看到“活动监视器”窗口中填充了四个python3.7任务。但是,大约20分钟后,这四个python3.7从“活动监视器”中消失了。
最奇怪的部分是multiprocessing .py文件仍在运行,即它从未引发未捕获的异常也没有退出文件。
你们/姑娘们对发生的事情有什么想法吗?我的猜测是1)最有可能是脚本错误,以及2)旧计算机过热。
感谢!
编辑:以下是多进程代码,其中要执行的多进程函数为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()
部分的处理方式。
以上是关于Python多重处理会在不退出文件的情况下失去活动性的主要内容,如果未能解决你的问题,请参考以下文章
在不使用 VBA 的情况下突出显示 Excel 中的活动行/列?