等同于 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
参数的任何对象也可以像上面那样找到。
我正在使用 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
参数的任何对象也可以像上面那样找到。