您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python无法使用multiprocessing.pool分配内存

Python无法使用multiprocessing.pool分配内存

如对我的问题的评论所示,答案来自Puciek。

解决方案是在完成后关闭进程池。我认为它将自动关闭,因为该results变量位于本地RunMany,并且在RunMany完成后将被删除。但是,python并不总是能按预期工作。

固定代码为:

def RunMany(inputs):
from multiprocessing import cpu_count, Pool
proc=inputs[0]
pool=Pool(processes = proc) 
results=[]
for arg1 in inputs[1]:
    for arg2 in inputs[2]:
        for arg3 in inputs[3]:
            results.append(pool.apply_async(RunOne, args=(arg1, arg2, arg3)))
#new section
pool.close()
pool.join()    
#end new section
casenum=0
datadict=dict()
for p in results:
    #get results of simulation once it has finished
    datadict[casenum]=p.get() 
    casenum+=1
return datadict
python 2022/1/1 18:30:27 有197人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶