在Java中,join()
方法是Thread
類的一個方法。它用于使當前正在執行的線程等待另一個線程完成(終止)后再繼續執行。這樣可以確保線程之間的同步和順序執行。
當你調用一個線程的join()
方法時,當前線程會被阻塞,直到被調用join()
方法的線程執行完畢。一旦目標線程完成執行,當前線程將繼續執行。
下面是一個簡單的示例:
public class JoinExample {
public static void main(String[] args) throws InterruptedException {
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");
System.out.println("Thread 2 finished");
});
thread1.start();
thread1.join(); // 當前主線程會等待thread1執行完畢
thread2.start();
thread2.join(); // 當前主線程會等待thread2執行完畢
System.out.println("All threads finished");
}
}
在這個示例中,我們創建了兩個線程thread1
和thread2
。我們首先啟動thread1
,然后調用thread1.join()
,使主線程等待thread1
執行完畢。接著,我們啟動thread2
并調用thread2.join()
,使主線程等待thread2
執行完畢。最后,當所有線程都執行完畢時,打印"All threads finished"。