我有一个函数 f:
def f(param):
return param**2
和参数列表p:
p = [1, 2092132192, 30912830921, 4102983092183]
(在我的实际代码中,f POST 到 p 中指定的 URL 并返回响应)
我想同时对 p 中的所有项目调用 f 并返回最快的结果并终止其他三个(或许多仍在运行的)进程。我该怎么做呢?
最佳答案
使用这种方法:创建一个包装 f()
并且不返回结果但将其放入队列(可能另外返回)的辅助函数。
现在开始正常/通常的进程,但不要等待所有线程终止。相反,只需等待一个项目显示在队列中。如果你得到一个,你可以终止其他线程并返回。
关于Python 多处理 - 当最快的进程终止时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20990340/