小编Mar*_*usz的帖子

带有上下文管理器的ThreadPoolExecutor

我不明白为什么这段代码的行为方式不同。在第一种情况下,代码将显示“ elo”,并在19秒后显示“ 3”。

在其他情况下,我们将首先等待19秒,然后再看到“ elo”。

你能解释一下吗?

from concurrent.futures import ThreadPoolExecutor

def wait_on_future():
    f = 3
    import time
    time.sleep(19)
    print(f)

executor = ThreadPoolExecutor(max_workers=2)
executor.submit(wait_on_future)
print("elo")
Run Code Online (Sandbox Code Playgroud)

from concurrent.futures import ThreadPoolExecutor

def wait_on_future():
    f = 3
    import time
    time.sleep(19)
    print(f)

with ThreadPoolExecutor(max_workers=2) as executor:      
    executor.submit(wait_on_future)
print("elo")
Run Code Online (Sandbox Code Playgroud)

python multithreading threadpoolexecutor

3
推荐指数
1
解决办法
810
查看次数