线程1执行一段,线程2执行一段,线程1接着执行一段,线程2接着执行一段······线程1执行结束,线程2执行结束。
def go1():
with cond: #获取/等待cond
for i in range(0,10,2):
time.sleep(1)
print(threading.current_thread().name,i)
cond.wait() #等待
cond.notify() #通知
def go2():
with cond: #获取/等待cond
for i in range(1,10,2):
time.sleep(1)
print(threading.current_thread().name, i)
cond.notify() #通知
cond.wait() #等待
cond=threading.Condition() #线程条件变量
threading.Thread(target=go1).start()
threading.Thread(target=go2).start()