在Java中,Thread.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.");
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
try {
// 讓線程1先執行完畢
thread1.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread 2 is running.");
}
});
// 啟動線程
thread1.start();
thread2.start();
}
}
在這個示例中,我們創建了兩個線程thread1
和thread2
。thread2
中使用thread1.join()
方法來確保thread1
執行完畢后再繼續執行。因此,輸出結果將是:
Thread 1 is running.
Thread 2 is running.
注意,如果thread1
執行時間較長,thread2
將會等待很長時間。在實際應用中,你可能需要考慮使用更高級的同步機制,如CountDownLatch
、Semaphore
或CyclicBarrier
等,以更靈活地控制線程間的依賴關系。