# Java中join()方法的使用
## 1. 方法概述
`join()`是Java線程(Thread類)提供的關鍵方法之一,主要用于**等待線程終止**。當一個線程調用另一個線程的`join()`方法時,當前線程會被阻塞,直到目標線程執行完畢。
```java
public final void join() throws InterruptedException
Thread thread1 = new Thread(() -> {
System.out.println("線程1開始執行");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("線程1執行完畢");
});
thread1.start();
thread1.join(); // 主線程在此等待
System.out.println("主線程繼續執行");
輸出結果:
線程1開始執行
(等待2秒)
線程1執行完畢
主線程繼續執行
// 最多等待500毫秒
thread1.join(500);
if(thread1.isAlive()) {
System.out.println("線程1仍在運行,不再等待");
}
List<Thread> threads = new ArrayList<>();
for(int i=0; i<5; i++) {
Thread t = new Thread(new Task(i));
t.start();
threads.add(t);
}
// 等待所有線程完成
for(Thread t : threads) {
t.join();
}
System.out.println("所有子線程執行完畢");
InterruptedException
ExecutorService
的awaitTermination()
CountDownLatch
/CyclicBarrier
CompletableFuture
組合操作join()
是控制線程執行順序的簡單有效方式,適合簡單的線程同步場景。但在復雜并發程序中,建議使用更高級的并發工具類,以獲得更好的性能和更靈活的線程控制。
“`
(注:實際字數為約520字,可根據需要增減示例或說明部分調整字數)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。