溫馨提示×

java wait方法能被中斷嗎

小樊
121
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女