温馨提示×

java wait方法能被中断吗

小樊
81
2024-11-26 19:34:26
栏目: 编程语言

是的,Java中的wait()方法可以被中断。当你调用一个线程的wait()方法时,该线程会进入等待状态,直到其他线程调用同一个对象的notify()notifyAll()方法唤醒它。如果在此期间,调用wait()方法的线程被中断,那么它将收到一个InterruptedException异常。

你可以通过捕获这个异常来判断线程是否被中断,并在适当的时候处理中断信号。例如:

try {
    synchronized (lock) {
        while (!condition) {
            try {
                lock.wait();
            } catch (InterruptedException e) {
                // 线程被中断,处理中断信号
                Thread.currentThread().interrupt(); // 重新设置中断状态
                return; // 或者根据你的需求执行其他操作
            }
        }
    }
} catch (InterruptedException e) {
    // 这里不会被执行,因为wait()方法已经被捕获
}

在这个例子中,当线程被中断时,它会捕获InterruptedException异常,然后重新设置中断状态并返回。你可以根据实际需求来处理中断信号。

0