条件Condition相当于给锁造钥匙,但是这钥匙是一次性的。一个线程拿到钥匙进去,出来之后钥匙没有归还,而是没了。
如下代码:
from threading import Thread, Condition def func(conn, i): conn.acquire() conn.wait() print('在第%s循环中'%i) conn.release() conn = Condition() for i in range(10): Thread(target=func, args=(conn, i)).start() while 1: num = int(input('>>>')) conn.acquire() conn.notify(num) conn.release()
条件在创建之初,状态是False。
里面有四个命令:
wait() 当状态是False的时候,程序阻塞。等钥匙。
notify(num) 造钥匙,num一定要是int类型的。
acquire() 和 release() 是锁。