java.lang.IllegalMonitorStateException
需要在调用wait()或者notify()之前,必须使用synchronized语义绑定住被wait/notify的对象。
解决方案是采用java.util.concurrent.atomic中对应的类型,比如这里就应该是AtomicBoolean。采用AtomicBoolean类型,可以保证对它的修改不会产生新的对象。
private AtomicBoolean wait = new AtomicBoolean(false);
synchronized (this.wait) {
}