一、问题描述:
Exception in thread “A” java.lang.IllegalMonitorStateException
at java.lang.Object.notify(Native Method)
at com.atguigu.AirCondition.increment(Consumer.java:24)
at com.atguigu.Consumer.lambda$main$0(Consumer.java:56)
at java.lang.Thread.run(Thread.java:748)
lock.lock();
while (count!=0){
condition.await();
// lock.wait();
// this.wait();
//ReentrantLock使用了wait(Object)
二:问题分析
synchronized和ReentrantLock本质是不一样的,两个同时使用必然出问题;
package java.lang;
vs
package java.util.concurrent.locks;
三、问题解决:
使用
private Lock lock = new ReentrantLock();
private Condition condition = lock.newCondition();
condition.await();
不能混用!!!