要停止線程池中的線程,可以使用 ExecutorService
接口提供的 shutdown()
方法來停止線程池。這個方法會平滑地關閉線程池,即等待所有已提交的任務執行完畢后關閉線程池。
示例代碼如下:
ExecutorService executor = Executors.newFixedThreadPool(5);
// 執行任務...
// 停止線程池
executor.shutdown();
上述代碼中,Executors.newFixedThreadPool(5)
創建了一個固定大小的線程池,然后在執行任務后調用 executor.shutdown()
方法停止線程池。
如果想立即停止線程池,可以使用 shutdownNow()
方法,該方法會嘗試停止所有正在執行的任務并立即關閉線程池。
示例代碼如下:
ExecutorService executor = Executors.newFixedThreadPool(5);
// 執行任務...
// 立即停止線程池
executor.shutdownNow();
需要注意的是,調用 shutdown()
或 shutdownNow()
方法后,線程池將不能再接受新的任務,但已提交的任務會繼續執行直到完成或被中斷。