Python ThreadPoolExecutor: как отправить внутри отправленной функции ⇐ Python

Программы на Python
Anonymous
Python ThreadPoolExecutor: как отправить внутри отправленной функции

Сообщение Anonymous »

Я использую библиотеку Python concurrent.futures с ThreadPoolExecutor и хочу отправить данные внутри отправленной функции. Следующий код представляет собой минимальный пример попытки отправить f2 внутри отправленного f1:

Код: Выделить всё

import concurrent.futures

def f2():
print("hello, f2")

def f1():
print("hello, f1")
executor.submit(f2)

with concurrent.futures.ThreadPoolExecutor(16) as executor:
executor.submit(f1)
выходы (Python 3.12):

Код: Выделить всё

hello, f1
Вывод тот же, даже если:

Код: Выделить всё

import concurrent.futures

def f2():
print("hello, f2")
return 3

def f1():
print("hello, f1")
print(executor.submit(f2).result())

with concurrent.futures.ThreadPoolExecutor(16) as executor:
executor.submit(f1)
Почему f2 не вызывается? Что мне следует сделать, чтобы убедиться, что вызывается f2?

Подробнее здесь: https://stackoverflow.com/questions/790 ... -submitted

Вернуться в «Python»