Java中的`join()`方法是`Thread`類中的一個方法,它允許一個執行緒等待另一個執行緒執行完畢。當一個執行緒調用了其他執行緒的`join()`方法時,當前執行緒會停止執行並進入等待狀態,直到被`join()`的執行緒完成執行。此外,`join()`方法有重載版本,允許指定等待的時間長度,如果指定了時間參數,當前執行緒會等待指定的時間,無論被等待的執行緒是否已經結束。
使用`join()`方法的場景包括:
當主執行緒需要等待子執行緒完成某些操作,如耗時計算或資源初始化等,再繼續執行後續代碼時。
在確保程式執行順序的情況下,例如確保某個執行緒完全執行完畢後再繼續執行主執行緒的後續代碼。
示例代碼:
```java
public class ThreadJoinExample {
public static void main(String[] args) throws InterruptedException {
Thread thread = new Thread(() -> {
// 子執行緒執行的代碼
System.out.println("子執行緒執行完畢");
});
thread.start();
thread.join(); // 主執行緒等待子執行緒執行完畢
System.out.println("主執行緒繼續執行");
}
}
```
在這個例子中,`main`執行緒創建並啟動了一個新的執行緒。通過調用`thread.join()`,`main`執行緒會等待子執行緒執行完畢後再繼續執行後面的代碼。這樣確保了主執行緒在繼續執行之前,子執行緒已經完成了它的任務。