等同于 multiprocessing.Pool 加入 pathos 的功能

equivalent functionality to multiprocessing.Pool's join in pathos

我正在使用 multiprocessing.Process 来防止某些功能在 运行 中使用时间过长。

我想使用 pathos 而不是 python 的 multiprocessing(因为它能够处理标准多处理包无法处理的事情),但是它似乎缺少某些功能:我在 pathos 中找不到任何允许 join 带有超时参数的内容。

我希望有某种东西可以让我在一段时间后终止进程。

(我正在使用 windows,所以最简单的替代方案 - 使用 signal - 是不可能的,而且替代方案看起来非常复杂)

我是 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 参数的任何对象也可以像上面那样找到。