class Resource
{
private String name;
private int count = 1;
private boolean flag = false;
// 创建一个锁对象。
Lock lock = new ReentrantLock();
//通过已有的锁获取该锁上的监视器对象。
// Condition con = lock.newCondition();
//通过已有的锁获取两组监视器,一组监视生产者,一组监视消费者。
Condition producer_con = lock.newCondition();
Condition consumer_con = lock.newCondition();
通过一个锁获取了2个监视器。怎么确保producer-con监视producer(生产者)。。。然后consumer-con监视consumer(消费者)呢。。。想了好久不明白、、
消费者-生产者问题的关键在于,需要保证 读取-数据处理/判断-写回 三者原子事务性,所以需要加锁。一般来说只要1个就足够了。
你的程序用了2个,看下代码才能明白作者想干嘛。
生产消费者模型一个condition就可以了,生产者,消费者都用它,生产者有数据了就通过它通知消费者开始干活