在Java中,當我們使用Thread.join()
方法時,可能會遇到InterruptedException
。這是因為join()
方法會導致當前線程等待指定的線程完成(終止)后才繼續執行。如果在等待過程中,當前線程被中斷,那么就會拋出InterruptedException
。
為了處理這個異常,我們需要在調用join()
方法的代碼塊周圍添加一個try-catch語句。下面是一個示例:
public class JoinExample {
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
System.out.println("Thread 1 started");
try {
Thread.sleep(2000); // 模擬耗時操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 1 finished");
});
Thread thread2 = new Thread(() -> {
System.out.println("Thread 2 started");
try {
thread1.join(); // 等待thread1完成
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 2 finished");
});
thread1.start();
thread2.start();
}
}
在這個示例中,我們創建了兩個線程thread1
和thread2
。thread2
會等待thread1
完成后再繼續執行。我們使用try-catch語句來捕獲InterruptedException
,并在捕獲到異常時打印堆棧跟蹤。這樣,我們可以確保在發生異常時,程序能夠正常處理并繼續執行。