我使用multiprocessing.Process来防止某些函数运行太长时间。
我想使用pathos而不是python的multiprocessing (因为它有能力处理标准多处理包不能处理的事情),但似乎缺少一些功能:我在pathos中找不到任何允许带超时参数的join的东西。
我希望有这样的东西,可以让我在一段时间后终止一个进程。
(我使用的是windows,所以最简单的替代方案-使用signal -是不可能的,而且替代方案似乎非常复杂)
发布于 2017-01-21 00:39:07
我是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参数的对象也可以如上所述。
https://stackoverflow.com/questions/41661257
复制相似问题