线程的条件Condiition

条件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()  是锁。

 

posted @ 2018-10-26 20:34  aaronthon  阅读(261)  评论(0编辑  收藏  举报