【问题标题】:what does "method return" means in executor.shutdown?executor.shutdown 中的“方法返回”是什么意思?
【发布时间】:2021-12-02 10:36:55
【问题描述】:

我对 executor.shutdown 方法很好奇,我试图找到一些关于它的信息......

根据 python 文档,

**shutdown(wait=True, *, cancel_futures=False)

如果等待为真,那么此方法将不会返回,直到所有未决的期货都执行完毕并且与执行程序关联的资源已被释放。如果 wait 为 False,则 此方法将立即返回,并且当所有未决的期货执行完毕后,与执行器关联的资源将被释放。无论 wait 的值如何,整个 Python 程序都不会退出,直到所有未决的期货都执行完毕。**

但我无法理解段落中“此方法将返回”是什么意思...

executor.shutdown 方法是否返回任何值??

例如,在这段代码中

import concurrent.futures
import time

def pafter(t):
    time.sleep(t)
    print('Hi)

with concurrent.futures.ThreadPoolExecutor(5) as e:
    e.submit(pafter, 2)

print('With returned')

shutdown 方法有返回值吗??

【问题讨论】:

  • 意思是return总是的意思,退出函数并将控制权返回给调用者

标签: python concurrent.futures


【解决方案1】:

shutdown() 没有显式返回值(也就是说,如果您捕获了返回值,它将是 None,就像任何其他不返回值的函数或方法一样)。

所有关于wait参数的文档都提到,如果wait=Falseshutdown()将立即返回给调用者,如果wait=Trueshutdown()将等待返回,直到期货之后已完成。

shutdown() 中代码的相关部分实际上就是这样:

if wait:
    for t in self._threads:
        t.join()

它加入所有线程并在它们退出后返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 2013-04-25
    • 2012-09-06
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多