python线程问题

代码:

from threading import Thread, Event
import time


def countdown(n, start_env):
    print("countdown starting!")
    start_env.set()
    while n > 0:
        print("T-minus", n)
        n -= 1
        time.sleep(2)


start_env = Event()


print('Launching Thread-countdown')
t = Thread(target=countdown, args=(10, start_env))
t.start()


start_env.wait()
print("countdown Running..............")
t.join()

输出结果:

Launching Thread-countdown
countdown starting!
T-minus 10
countdown Running..............
T-minus 9
T-minus 8
T-minus 7
T-minus 6
T-minus 5
T-minus 4
T-minus 3
T-minus 2
T-minus 1

我想问:为什么countdown Running 只在T-minus 10后输出一次?

阅读 3.3k
3 个回答

因为你只wait了一次 线程也只有一个 多开点线程然后 wait放循环里就是多次了

刚写完问题就看到一个解释:“我们创建一个事件,让线程等待事件被设置,然后一旦完成设置,事件就被丢弃”
是这样吗?

哥们,你觉得不是输出一次,应该是几次?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题