使用ReentrantLock实现生产者消费者模式
一. 生产者/消费者模式:一对一交替打印
新建MyService.java :
package service;
importjava.util.concurrent.locks.Condition;
importjava.util.concurrent.locks.ReentrantLock;
public class MyService {
privateReentrantLock lock = new ReentrantLock();
privateCondition condition = lock.newCondition();
privateboolean hasValue = false;
publicvoid set() {
try{
lock.lock();
while(hasValue == true) {
condition.await();
}
System.out.println("打印★");
hasValue= true;
condition.signal();
}catch (InterruptedException e) {
e.printStackTrace();
}finally {
lock.unlock();
}
}
publicvoid get() {
try{
lock.lock();
while(hasValue == false) {
condition.await();