condition 实现生产者和消费者简单示例
作者:互联网
synchronized 与 wait()和 notify() 、notifyAll() 方法相结合可以实现等待/通知模式,ReentantLock 同样也可以实现,需要借助 Condition 实现
public class ConditionTest { private Lock lock = new ReentrantLock(); private Condition condition = lock.newCondition(); private volatile Queue<String> queue = new LinkedList<>(); public void addTask(String s) { lock.lock(); try { queue.add(s); condition.signalAll(); } finally { lock.unlock(); } } public String getTask() throws InterruptedException { lock.lock(); try { while (queue.isEmpty()) { condition.await(); } return queue.remove(); } finally { lock.unlock(); } } }
标签:示例,生产者,lock,private,queue,unlock,public,condition 来源: https://www.cnblogs.com/guanbin-529/p/16099984.html