python 与 运行 进程一样长时间使用相同的线程

python keep using same threads in long duration as long running process

我有一个模型,我想保持 运行ning 并行超过 6 小时:

pool = multiprocessing.Pool(10)
for subModel in self.model:
    pool.apply_async(self.compute, subModel, features)
pool.close()
pool.join()

现在的问题太慢了,因为我每次都要调用pool = multiprocessing.Pool(10)和pool.join()来构造和解构10个线程,而模型是运行 6 小时内吨次。

我认为的解决方案是在后台保留 10 个线程 运行ning,这样每当有新数据进入时,它就会立即进入模型,而不必担心创建新线程并解构它们浪费很多时间。

在python中有没有一种方法可以让你有一个漫长的运行宁过程,这样你就不需要一遍又一遍地开始和停止?

在向其提交一组任务后,您不需要 close()join()(并销毁)Pool。如果您想确保 apply_async() 在继续之前已完成,只需调用 apply(),下次使用相同的 Pool。或者,如果您可以在等待任务的同时做其他事情,请保存 apply_async 返回的结果对象,并在完成后无法继续时调用 wait()