Python ThreadPoolExecutor:如何在已提交的函数内提交

问题描述 投票:0回答:1

我正在使用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

python concurrency threadpoolexecutor concurrent.futures
1个回答
0
投票

执行器在 f1 中不可用,因此在那里调用它不起作用 您可以将执行程序作为参数传递给 f1 来解决此问题

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


with concurrent.futures.ThreadPoolExecutor(16) as executor:
 executor.submit(f1(executor)
© www.soinside.com 2019 - 2024. All rights reserved.