[英]Run 3 python functions concurrently then add their values together
我正在为 x、y 和 z 生成系数。 我想同时运行生成函数(因为它们需要一段时间),然后一旦全部生成,将系数合并在一起。 我理想的代码会有点像这样:
#generated in parallel
x = generate_x()
y = generate_y()
z = generate_z()
merged = x + y + z
我不想在开始生成下一个之前等待每个生成 function ,但我还需要在最后合并它们之前完成它们。 如何才能做到这一点?
您可以使用“并发”库在代码中轻松实现并发。
from concurrent import futures
with futures.ThreadPoolExecutor() as exe:
results = [exe.submit(generate_x), exe.submit(generate_y), exe.submit(generate_z)]
sum_coeffs = sum(result.result() for result in futures.as_completed(results))
您可以在线程运行时将所有线程存储在这样的列表中,然后在线程完成时通过使用期货库中的as_completed()
方法访问该线程。 之后,使用result()
方法访问已完成线程中存储的结果并将它们全部汇总。
看这里了解更多关于图书馆的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.