我正在使用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
为什么不调用
f2
?我应该怎么做才能确保调用 f2
?
执行器在 f1 中不可用,因此在那里调用它不起作用 您可以将执行程序作为参数传递给 f1 来解决此问题
f1(executor):
print("hello, f1")
executor.submit(f2)
with concurrent.futures.ThreadPoolExecutor(16) as executor:
executor.submit(f1(executor)