当栅栏中所有线程都已经调用了这个函数,它们将同时被释放。如果提供了 timeout 参数,这里的 timeout 参数优先于创建栅栏对象时提供的 timeout 参数。
即当2个线程同时到达 wait 方式继续向下执行。
import threading
import time
b = threading.Barrier(2, timeout=5)
def task1():
time.sleep(3)
print('start task1')
b.wait()
print('end task1')
def task2():
time.sleep(1)
print('start task2')
b.wait()
print('end task2')
threading.Thread(target=task1).start()
threading.Thread(target=task2).start()
print('over')
start task2
start task1
end task1
end task2

2173

被折叠的 条评论
为什么被折叠?



