可以终止作为池中工作进程的python进程吗?
每个工作进程运行一个长的CPU限制计算。计算取决于参数,这些参数可以随时更改,即使在计算过程中也是如此。如果发生这种情况,计算的最终结果将变得毫无用处。我们不控制计算代码,所以我们不能发出停止的信号。我们能做什么可以终止作为池中工作进程的python进程吗?,python,python-multiprocessing,pool,Python,Python Multiprocessing,Pool,每个工作进程运行一个长的CPU限制计算。计算取决于参数,这些参数可以随时更改,即使在计算过程中也是如此。如果发生这种情况,计算的最终结果将变得毫无用处。我们不控制计算代码,所以我们不能发出停止的信号。我们能做什么 无:让工作人员完成其任务,然后以某种方式意识到结果不正确,必须重新计算。这意味着继续使用处理器可能会产生无用的结果,可能会持续很长时间 不要使用池:根据需要创建并加入流程。然后,我们可以终止这个无用的进程并创建另一个进程。我们甚至可以对同时存在的进程的数量进行限制。不幸的是,我们不会重
fork
生成一个新进程(大多数UNIX类的默认值)的成本只是这个成本的一小部分,而spawn
生成一个进程(MacOS和Windows上的默认行为)的成本通常仍然是以一秒钟的一小部分来衡量的
作为比较:
选项1是浪费;如果您的内核快要用完了,并且失效发生的频率不限,那么您就不想让内核无限期地在垃圾堆上嘎嘎作响
选项#3即使有效,也只是巧合,可能会在Python的新版本中出现,因为杀死工人的行为并不是一个有文档记录的特性。是的,我明白你的意思。此外,长时间运行的流程最有可能因更改而失效