繁体   English   中英

同时运行 3 个 python 函数,然后将它们的值相加

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM