Thread.join()方法是用來(lái)等待當(dāng)前線程執(zhí)行完畢后再繼續(xù)執(zhí)行其他操作的方法。
在Java中,當(dāng)一個(gè)線程調(diào)用另一個(gè)線程的join()方法時(shí),該線程會(huì)被阻塞,直到被調(diào)用的線程執(zhí)行完畢。換句話說(shuō),調(diào)用線程會(huì)等待被調(diào)用線程執(zhí)行完畢后再繼續(xù)執(zhí)行。
join()方法有兩種重載形式:
join():等待被調(diào)用線程執(zhí)行完畢。
join(long millis):等待被調(diào)用線程執(zhí)行完畢,最多等待millis毫秒。
以下是join()方法的使用示例:
Thread thread = new Thread(() -> {
try {
// 模擬線程執(zhí)行時(shí)間
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("線程執(zhí)行完畢");
});
thread.start();
try {
// 等待thread線程執(zhí)行完畢
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主線程執(zhí)行完畢");
上述代碼中,主線程啟動(dòng)了一個(gè)子線程thread,并調(diào)用thread.join()方法來(lái)等待子線程執(zhí)行完畢。當(dāng)子線程執(zhí)行結(jié)束后,主線程才會(huì)繼續(xù)執(zhí)行,輸出"主線程執(zhí)行完畢"。