代码:
# -*- coding: utf-8 -*- """ 学习线程同步,使用条件变量 逻辑: 生产消费者模型 一个有3个大小的产品库,一个生产者负责生产,一个消费者负责消费 每次生产或消费一个产品,产品库满了,生产者必须等待,产品库空了,消费者必须等待 生产者的速度是消费者的速度2倍,先启动消费者,一段时间后启动生产者 总结: 1. 条件变量底层用到R锁,对于已经获得锁的线程可以执行多次 acquire(),锁多次 2. 不确定是否和java的这一套 ,原理一样 使用: 1. 创建条件对象 cond = threading.Condition() 2. 在子线程调用 申请获取锁 cond.acquire() 3. 在程序中如果有必要 使用 cond.wait() cond.notify() cond.notifyall() 4. 使用完后 释放锁 cond.release() 参考: 学习线程同步,使