我正在使用multiprocessing.Process
来防止某些功能运行太久。
我想使用pathos
而不是python的multiprocessing
(由于它能够处理标准多处理程序包无法处理的事情),但似乎缺少某些功能:I在pathos中找不到任何允许join
超时参数的内容。
我希望有一些东西可以让我在一段时间后终止一个过程。
(我正在使用Windows,所以最简单的替代方案 - 使用signal
- 是不可能的,而替代方案似乎非常复杂)
答案 0 :(得分:3)
我是pathos
作者。您可能需要尝试multiprocess
,这是multiprocessing
的分支(并且是pathos
下面的内容)。如果安装了pathos
,则应该已经安装了它。
您可以通过以下两种方式获得Process
,其中它具有与multiprocessing
中相同的所有功能(以及来自dill
的其他序列化功能):
>>> import pathos
>>> pathos.helpers.mp.Process
<class 'multiprocess.process.Process'>
>>> import multiprocess
>>> multiprocess.Process
<class 'multiprocess.process.Process'>
因此,multiprocessing
中带有timeout
参数的任何对象也可以如上所示找到。