【发布时间】:2020-12-03 15:54:35
【问题描述】:
我正在使用 python 多处理库来对大量数字运行大量测试。
我有以下语法:
import multiprocessing as mp
pool = mp.Pool(processes = 6)
res = pool.async_map(testFunction, arrayOfNumbers)
但是我想返回第一个通过测试的数字,然后退出。我对存储结果数组不感兴趣。
目前testFunction 会为任何失败的数字返回 0,所以如果在没有任何优化的情况下这样做,我会等待它完成并使用:
return filter(lambda x: x != 0, res)[0]
假设有结果。但是由于它是异步运行的,所以我想尽快得到非零值。
最好的方法是什么?
【问题讨论】:
标签: python python-3.x multithreading asynchronous