2 qq 28438651 qq_28438651 于 2017.01.01 20:34 提问

java一个锁两个监视器

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(消费者)呢。。。想了好久不明白、、

2个回答

caozhy
caozhy   Ds   Rxr 2017.01.01 20:42

消费者-生产者问题的关键在于,需要保证 读取-数据处理/判断-写回 三者原子事务性,所以需要加锁。一般来说只要1个就足够了。
你的程序用了2个,看下代码才能明白作者想干嘛。

oyljerry
oyljerry   Ds   Rxr 2017.01.01 20:44

生产消费者模型一个condition就可以了,生产者,消费者都用它,生产者有数据了就通过它通知消费者开始干活

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!