Python 多处理 - 当最快的进程终止时返回

标签 python dictionary process queue multiprocessing

我有一个函数 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/

相关文章:

python - 如何在 python/matplotlib 中设置默认刻度参数?

excel - 如何访问嵌套字典的键?

java - 具有方便符号的键值集合

linux - 从另一个脚本运行 bash 脚本而不等待脚本完成执行?

c# - 查找包含进程特定文本的窗口

python - 如何使用 pandas.read_sql 中的参数在日期之间从 SQLite 表中使用 Python pandas 导入数据

python - 如何从每行都是字典的 RDD 创建 DataFrame?

python - 在没有登录的情况下使用 ssh-agent

javascript - 在 handleChange、setState 和 map 数组上,新项目取决于 setedState

c - 为什么这段代码在使用多进程时不打印两个 "hello"?