Thread.join()
方法在 Java 中用于確保一個線程在另一個線程完成執行之前不會繼續執行。這有助于實現線程同步,確保線程按照預期的順序執行。
當你調用一個線程的 join()
方法時,當前線程會阻塞,直到被調用 join()
方法的線程執行完畢。這樣可以確保線程按照調用順序執行,從而實現線程同步。
下面是一個簡單的示例,展示了如何使用 Thread.join()
實現線程同步:
public class JoinExample {
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread 1 is running.");
try {
// 暫停2秒,模擬線程1的執行時間
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 1 is finished.");
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread 2 is running.");
try {
// 暫停2秒,模擬線程2的執行時間
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 2 is finished.");
}
});
// 確保線程1先執行
thread1.start();
try {
// 等待線程1執行完畢
thread1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 線程1執行完畢后,線程2開始執行
thread2.start();
}
}
在這個示例中,我們創建了兩個線程 thread1
和 thread2
。我們使用 thread1.join()
確保 thread1
在 thread2
之前執行。這樣,我們可以控制線程的執行順序,實現線程同步。