在Java中,join()
方法用于等待一個線程完成(終止)后,才繼續(xù)執(zhí)行當前線程。它是Thread
類的一個方法。當在一個線程中調用另一個線程的join()
方法時,當前線程會被阻塞,直到被調用線程完成執(zhí)行。
join()
方法的執(zhí)行順序如下:
join()
方法。需要注意的是,join()
方法可以接受一個長整型參數(shù)(以毫秒為單位),用于指定等待的最長時間。如果在指定的時間內(nèi),被調用線程還沒有完成執(zhí)行,那么當前線程將不再等待,繼續(xù)執(zhí)行。
示例代碼:
public class JoinExample {
public static void main(String[] args) throws InterruptedException {
Thread threadB = new Thread(() -> {
System.out.println("線程B開始執(zhí)行...");
try {
Thread.sleep(2000); // 模擬耗時操作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("線程B執(zhí)行完畢.");
});
threadB.start(); // 啟動線程B
System.out.println("線程A調用線程B的join()方法");
threadB.join(); // 線程A等待線程B完成執(zhí)行
System.out.println("線程A繼續(xù)執(zhí)行...");
}
}
輸出結果:
線程A調用線程B的join()方法
線程B開始執(zhí)行...
線程B執(zhí)行完畢.
線程A繼續(xù)執(zhí)行...