我使用 Concurrent.Futures 模块创建了一个 ThreadPool。我创建了线程,一切正常。
但是现在我有一个函数,我想让它与线程并行,问题是我需要每个线程应该运行的函数的返回值,并且不确定在使用期货 threadPool 模块时如何获取它。有办法吗?
我使用 Concurrent.Futures 模块创建了一个 ThreadPool。我创建了线程,一切正常。
但是现在我有一个函数,我想让它与线程并行,问题是我需要每个线程应该运行的函数的返回值,并且不确定在使用期货 threadPool 模块时如何获取它。有办法吗?
你的理解result()
是绝对错误的。来自文档:
result(timeout=None)
返回调用返回的值。如果调用尚未完成,则此方法将等待 timeout 秒。如果调用在 timeout 秒内未完成,则会引发 TimeoutError。timeout 可以是 int 或 float。如果未指定 timeout 或 None,则等待时间没有限制。如果未来在完成之前被取消,则会引发 CancelledError。
很明显,result()
它将为您提供您提交的该功能的结果。