在Java中,wait()
方法不能多次调用。当你调用一个对象的wait()
方法时,当前线程会释放该对象的锁并进入等待状态,直到其他线程调用同一个对象的notify()
或notifyAll()
方法唤醒它。在这个等待期间,如果再次调用wait()
方法,将会导致IllegalMonitorStateException
异常,因为当前线程并没有持有该对象的锁。
为了避免这种情况,你可以在wait()
方法调用之前检查线程是否已经处于等待状态,或者使用synchronized
关键字和Lock
接口来更好地控制线程同步。