1

我有以下示例:

import time
import concurrent.futures
x = [10, 1, 2]

def sleeper(secs):
    time.sleep(secs)
    print('I slept for {} seconds'.format(secs))

# returns in the order given
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
    for future in executor.map(sleeper, x):
        future

我希望这个函数会按照每次睡眠的顺序打印“我睡了 {} 秒”,但是,在处理完最后一个值 (10) 之后会打印所有结果。

为什么会发生这种情况以及每次通话完成时我将如何打印 sleeper

4

1 回答 1

0

我在终端中使用 Python2 和 3 进行了测试,它按预期工作。使用 IPython Notebook,在处理完最后一个值 (10) 后打印所有结果。

所以这是IPython Notebook的问题,也许你应该提交一个问题。

于 2015-05-06T05:26:16.750 回答