要停止线程池中的线程,可以使用 ExecutorService
接口提供的 shutdown()
方法来停止线程池。这个方法会平滑地关闭线程池,即等待所有已提交的任务执行完毕后关闭线程池。
示例代码如下:
ExecutorService executor = Executors.newFixedThreadPool(5);
// 执行任务...
// 停止线程池
executor.shutdown();
上述代码中,Executors.newFixedThreadPool(5)
创建了一个固定大小的线程池,然后在执行任务后调用 executor.shutdown()
方法停止线程池。
如果想立即停止线程池,可以使用 shutdownNow()
方法,该方法会尝试停止所有正在执行的任务并立即关闭线程池。
示例代码如下:
ExecutorService executor = Executors.newFixedThreadPool(5);
// 执行任务...
// 立即停止线程池
executor.shutdownNow();
需要注意的是,调用 shutdown()
或 shutdownNow()
方法后,线程池将不能再接受新的任务,但已提交的任务会继续执行直到完成或被中断。