请参阅javadoc中的Object.wait。
特别是“当前线程必须拥有该对象的监视器。” 和“ [throws] IllegalMonitorStateException-
如果当前线程不是对象监视器的所有者。” 也就是说,您需要在要调用的对象上进行同步。
因此您的代码应为:
synchronized (available) { available.wait();}
请参阅javadoc中的Object.wait。
特别是“当前线程必须拥有该对象的监视器。” 和“ [throws] IllegalMonitorStateException-
如果当前线程不是对象监视器的所有者。” 也就是说,您需要在要调用的对象上进行同步。
因此您的代码应为:
synchronized (available) { available.wait();}