在Java中,wait()方法可以与synchronized关键字和Object.notify()或Object.notifyAll()方法一起使用,以实现线程间的通信。当调用wait()方法时,线程会释放其占有的对象锁并进入等待状态,直到其他线程调用同一对象的notify()或notifyAll()方法唤醒它。
要设置wait()方法的超时时间,可以使用Thread.sleep()方法。以下是一个示例:
try { // 1. 获取对象锁 synchronized (lock) { // 2. 检查条件是否满足 while (!condition) { // 3. 如果条件不满足,则等待一段时间(单位:毫秒) lock.wait(timeout); } // 4. 条件满足,执行后续操作 } } catch (InterruptedException e) { // 处理异常 } 在这个示例中,lock是用于同步的对象,condition是等待的条件,timeout是等待的超时时间(以毫秒为单位)。如果在timeout毫秒内条件没有满足,线程将继续执行后续操作。注意,当线程被唤醒后,还需要重新获取对象锁才能继续执行。