在Java中,newFixedThreadPool
是java.util.concurrent.Executors
類中的一個方法,用于創建一個固定大小的線程池。要釋放固定線程池資源,請遵循以下步驟:
shutdown()
或shutdownNow()
方法關閉線程池。這兩個方法的主要區別在于,shutdown()
方法不會立即終止正在執行的任務,而是等待它們完成;而shutdownNow()
方法會嘗試立即終止所有正在執行的任務。ExecutorService executorService = Executors.newFixedThreadPool(5);
// 提交任務到線程池
executorService.submit(() -> {
// 你的任務代碼
});
// 關閉線程池
executorService.shutdown(); // 或者使用 executorService.shutdownNow();
awaitTermination()
方法等待所有任務完成。這個方法會阻塞當前線程,直到所有任務完成或者超時(可選)。executorService.shutdown();
try {
// 等待所有任務完成,最多等待1小時
if (executorService.awaitTermination(1, TimeUnit.HOURS)) {
System.out.println("所有任務已完成");
} else {
System.out.println("未完成的任務超時");
}
} catch (InterruptedException e) {
System.out.println("等待任務完成時發生異常");
}
注意:在使用固定線程池時,請確保在不再需要時關閉它,以避免資源泄漏。