擅长:python、mysql、java
<p><code>Future</code>具体类的使用被硬连接到<code>Executor.submit()</code>(无论是针对<a href="https://hg.python.org/cpython/file/3.5/Lib/concurrent/futures/process.py#l445" rel="nofollow noreferrer">processes</a>还是{a2})。因此,我认为不可能完全按照你的要求去做。但是,您可以从传递给<code>Executor.submit()</code>的可调用文件返回任何结果。因此,请将自定义方法放在自定义返回类中:</p>
<pre><code>class my_result(object):
def my_custom_method(self):
pass
def x():
return my_result()
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
futures = [executor.submit(x), executor.submit(x)]
for my_future in concurrent.futures.as_completed(futures):
my_future.result().my_custom_method()
# ^^^^^^^^^
</code></pre>
<p><strong>编辑</strong>或者,如果<em>真的</em>希望内部循环干净,请将最后两行更改为:</p>
^{pr2}$
<p><a href="https://stackoverflow.com/a/6407222/2877364">generator expression</a><code>(f.result() ... (futures))</code>从{<cd5>}获取期货的迭代器,并为您提供这些期货结果的迭代器。然后可以循环查看这些结果。在</p>