[英]How to get the result of multiprocessing.Pool.apply_async
解决方案非常简单:
import multiprocessing
def func():
return 2**3**4
p = multiprocessing.Pool()
result = p.apply_async(func).get()
print(result)
由于Pool.apply_async()
返回AsyncResult
,因此您只需从AsyncResult.get()
方法获取结果即可。
希望这可以帮助!
一个简单的方法是拥有一个这样的辅助类:
class Result():
def __init__(self):
self.val = None
def update_result(self, val):
self.val = val
result = Result()
def f(x):
return x*x
pool.apply_async(f, (10,), callback=result.update_result)
当线程运行并计算结果时,它将调用你的回调函数来更新result.val。
无论如何,您需要检查线程是否已完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.