如何停止 ThreadPoolTask​​Executor 中所有正在运行的线程?

Gre*_*Lei 5 java spring multithreading

我正在使用ThreadPoolTaskExecutor以下方法添加新线程:

threadPoolTaskExecutor.execute(new Runnable() {

    @Override
    public void run() {
        while(true){
            doSomething();
        }

        Thread.sleep(1000); 
    }

});
Run Code Online (Sandbox Code Playgroud)

当我关闭此执行程序时,所有活动线程都不会停止:

threadPoolTaskExecutor.shutdown();

是否可以选择如何使用 停止此活动线程ThreadPoolTaskExecutor

cod*_*guy 3

您应该在 create 时设置setWaitForTasksToCompleteOnShutdown(false)ThreadPoolTaskExecutor

默认为false,通过中断正在进行的任务并清除队列来立即关闭。