что означает «метод возврата» в исполнителе.выключение?

#python #concurrent.futures

Вопрос:

Мне любопытно узнать об исполнителе.метод выключения, и я пытался найти некоторую информацию об этом…

согласно документам python,

**завершение работы(ожидание=True, *, cancel_futures=False)

Если значение wait равно True, то этот метод не вернется до тех пор, пока не будут выполнены все отложенные фьючерсы и не будут освобождены ресурсы, связанные с исполнителем. Если значение wait равно False, то этот метод немедленно вернется, и ресурсы, связанные с исполнителем, будут освобождены, когда все ожидающие исполнения фьючерсы будут выполнены. Независимо от значения ожидания, вся программа Python не завершится до тех пор, пока не будут выполнены все отложенные фьючерсы.**

но я не мог понять, что означает «этот метод вернется» в этом абзаце…

делает исполнитель.метод завершения работы возвращает какое-либо значение??

например, в этом коде

 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')  

возвращает ли метод завершения работы какое-либо значение??

Комментарии:

1. Это означает то, что return всегда означает, выйти из функции и вернуть управление вызывающему абоненту

Ответ №1:

shutdown() явно не возвращает значение (это означает, что если бы вы захватили возвращаемое значение, оно было бы None , как и любая другая функция или метод, который не возвращает значение).

Вся документация , на которую ссылается wait аргумент, заключается в том , что if wait=False shutdown() немедленно вернется к вызывающему абоненту, и if wait=True shutdown() будет ждать возвращения до тех пор, пока фьючерсы не завершатся.

Соответствующая часть кода в shutdown() буквально такова:

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

Он объединяет все потоки и возвращается после их выхода.