Python 在每个并行作业之后关闭多处理
我正在使用python的Python 在每个并行作业之后关闭多处理,python,multithreading,multiprocessing,pool,emcee,Python,Multithreading,Multiprocessing,Pool,Emcee,我正在使用python的多处理库和emcee,它也使用不同的线程来实现MCMC。问题是,即使我关闭池时,python似乎仍在使用处理器并降低内核速度,我不知道在完成任务后释放内核的有效方法是什么。谁能告诉我该怎么做吗? 更新: 我的代码已发布关闭池不会阻止它工作,它: 关闭() 防止向池提交更多任务。一朝 任务已完成,工作进程将退出 因此,如果您有很多排队的任务,关闭池将不会对资源使用产生任何影响-所有工作人员将继续使用这些排队的任务,直到它们离开。如果要立即基本中止所有工作项,必须使用: 终止
多处理
库和emcee
,它也使用不同的线程来实现MCMC
。问题是,即使我关闭池
时,python似乎仍在使用处理器并降低内核速度,我不知道在完成任务后释放内核的有效方法是什么。谁能告诉我该怎么做吗?更新:
我的代码已发布关闭
池
不会阻止它工作,它:
关闭()
防止向池提交更多任务。一朝
任务已完成,工作进程将退出
因此,如果您有很多排队的任务,关闭池将不会对资源使用产生任何影响-所有工作人员将继续使用这些排队的任务,直到它们离开。如果要立即基本中止所有工作项,必须使用:
终止()
立即停止工作进程而不完成未完成的工作。当池对象被垃圾收集时,将立即调用terminate()
当你说python仍然使用处理器并降低内核速度时,你是什么意思?你是如何测试的?@FrobberOfBits我使用ubuntu,然后当我运行命令top
时,我发现我的作业没有被终止,内核仍在使用。发布你的代码,让我们了解你是如何关闭池的,还提供关于如何运行int的更多细节。@FrobberOfBits我发布了代码。