功能:也是通过阻塞控制线程数量.类似信号量\进程池\线程池的作用
语法:wait
from threading import Condition
con= Condition()
conn.acquire()
conn.wait() 也可以传参指定等待时间,不传参相当于阻塞,根据notify数量放行
wait下面写上相应逻辑代码
con.release()
#语法: notify 使用前后加阻塞
con.acquire()
con.notify(5) 括号内自定义线程放行的数量,默认放行1个
con.release()
from threading import Condition, Thread
def func(con, index):
print("%s在等待" % index)
con.acquire()
# 添加阻塞
con.wait()
print("%s do everyting" % index)
con.release()
con = Condition()
for i in range(10):
t = Thread(target=func, args=(con, i))
t.start()
# 写法一
# con.acquire()
# con.notify(5) # 默认放行1个(不加参数)
# con.release()
# 写法二 :动态控制放行数量
count = 10
while count > 0:
num = int(input(">>>"))
con.acquire()
# 放行线程 num 动态赋予的值
con.notify(num)
con.release()
count -= num