生产者消费者模式在程序设计中出现频率非常高,经常会有线程间通过消息队列或其他共享变量进行交互的场景.而这时就会出现一个问题,消费者如何知道生产者已经生产了数据呢?有的程序会采取消费者循环判断消息队列大小是否为0,如果不为0则取出数据之类的方法.但是该种方法带来两个问题: 1. 生产者产出数据到消费者获得数据的延时较大. 2. CPU占用较高. 如果需要降低延时,则必然要提高轮询的频率,那么CPU占用就会升高.反之亦然,两者无法同时解决. 于是,唤醒等待机制就成为适合该种场景的解决方案. 该机制需…