使用 Concurrent.Futures 模块作为 ThreadPool 调用时 Python-get 函数的返回值

May*_*yaC 4 python multithreading return-value concurrent.futures

我使用 Concurrent.Futures 模块创建了一个 ThreadPool。我已经创建了线程,一切正常。

但现在我有一个函数,我想让它与线程并行,问题是我需要每个线程应该运行的函数的返回值,并且不确定在使用 futures threadPool 模块时如何获取它。有办法吗?

lai*_*e9m 6

你的理解result()绝对是错误的。来自文档

\n\n
\n

result(timeout=None)
\n 返回调用返回的值。如果调用尚未完成,则此方法将等待 timeout\n 秒。如果调用在超时秒内尚未完成\xe2\x80\x99,则将引发\n TimeoutError。timeout 可以是 int 或 float。如果未指定超时或无,则等待时间没有限制。

\n\n

如果 future 在完成之前被取消,则将引发 CancelledError。

\n
\n\n

很明显,这result()将为您提供您提交的函数的结果。

\n