在Java中,join()
方法是Thread
類的一個方法,它的主要作用是讓當前執行線程等待另一個線程完成后再繼續執行。
當你調用一個線程的join()
方法時,當前線程會被阻塞,直到被調用join()
方法的線程執行完畢。這樣可以確保在繼續執行當前線程之前,另一個線程已經完成了它的任務。
例如,假設你有兩個線程A和B,你希望線程A在線程B完成后再開始執行。你可以在線程A的代碼中調用線程B的join()
方法來實現這個目的:
public class ThreadExample {
public static void main(String[] args) throws InterruptedException {
Thread threadB = new Thread(() -> {
System.out.println("Thread B started");
try {
Thread.sleep(2000); // 模擬線程B需要執行一些操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread B finished");
});
Thread threadA = new Thread(() -> {
System.out.println("Thread A started");
try {
threadB.join(); // 等待線程B完成
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread A finished");
});
threadB.start();
threadA.start();
}
}
在這個例子中,線程A會等待線程B完成后再開始執行。輸出結果將會是:
Thread B started
Thread B finished
Thread A started
Thread A finished
請注意,join()
方法可能會拋出InterruptedException
異常,因此需要使用try-catch語句處理這個異常。