Java中判斷線程是否執(zhí)行完畢有多種方式:
Thread thread = new Thread(() -> {
// 線程執(zhí)行的代碼
});
thread.start(); // 啟動(dòng)線程
thread.join(); // 等待線程執(zhí)行完畢
// 線程執(zhí)行完畢后的代碼
Thread thread = new Thread(() -> {
// 線程執(zhí)行的代碼
});
thread.start(); // 啟動(dòng)線程
while (thread.isAlive()) {
// 等待線程執(zhí)行完畢
}
// 線程執(zhí)行完畢后的代碼
CountDownLatch latch = new CountDownLatch(1);
Thread thread = new Thread(() -> {
// 線程執(zhí)行的代碼
latch.countDown(); // 線程執(zhí)行完畢后調(diào)用countDown()方法
});
thread.start(); // 啟動(dòng)線程
latch.await(); // 等待線程執(zhí)行完畢
// 線程執(zhí)行完畢后的代碼
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<?> future = executorService.submit(() -> {
// 線程執(zhí)行的代碼
});
executorService.shutdown(); // 關(guān)閉線程池
try {
future.get(); // 等待線程執(zhí)行完畢
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
// 線程執(zhí)行完畢后的代碼