共計 947 個字符,預計需要花費 3 分鐘才能閱讀完成。
Java 中判斷線程是否執行完畢有多種方式:
- 使用 Thread 類的 join() 方法:調用線程的 join() 方法可以等待線程執行完畢,然后再繼續執行后面的代碼。
Thread thread = new Thread(() -> {// 線程執行的代碼});
thread.start(); // 啟動線程
thread.join(); // 等待線程執行完畢
// 線程執行完畢后的代碼
- 使用 Thread 類的 isAlive() 方法:調用線程的 isAlive() 方法可以判斷線程是否還在運行。
Thread thread = new Thread(() -> {// 線程執行的代碼});
thread.start(); // 啟動線程
while (thread.isAlive()) {// 等待線程執行完畢}
// 線程執行完畢后的代碼
- 使用 CountDownLatch 類:CountDownLatch 是一個同步輔助類,可以讓主線程等待其他線程執行完畢。
CountDownLatch latch = new CountDownLatch(1);
Thread thread = new Thread(() -> {
// 線程執行的代碼
latch.countDown(); // 線程執行完畢后調用 countDown() 方法
});
thread.start(); // 啟動線程
latch.await(); // 等待線程執行完畢
// 線程執行完畢后的代碼
- 使用 ExecutorService 類:ExecutorService 是 Java 中用于管理線程池的類,可以通過調用 submit() 方法提交一個線程任務,并通過調用 get() 方法等待任務執行完畢。
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future future = executorService.submit(() -> {// 線程執行的代碼});
executorService.shutdown(); // 關閉線程池
try {future.get(); // 等待線程執行完畢
} catch (InterruptedException | ExecutionException e) {e.printStackTrace();
}
// 線程執行完畢后的代碼
丸趣 TV 網 – 提供最優質的資源集合!
正文完