Java 如何停止ThreadPoolTaskExecutor中所有正在运行的线程?
我正在使用Java 如何停止ThreadPoolTaskExecutor中所有正在运行的线程?,java,multithreading,spring,Java,Multithreading,Spring,我正在使用ThreadPoolTaskExecutor添加这样的新线程: threadPoolTaskExecutor.execute(new Runnable() { @Override public void run() { while(true){ doSomething(); } Thread.sleep(1000); } }); 关闭此执行器时,不会停止所有活动线程: thread
ThreadPoolTaskExecutor
添加这样的新线程:
threadPoolTaskExecutor.execute(new Runnable() {
@Override
public void run() {
while(true){
doSomething();
}
Thread.sleep(1000);
}
});
关闭此执行器时,不会停止所有活动线程:
threadPoolTaskExecutor.shutdown()代码>
是否存在如何使用ThreadPoolTaskExecutor
停止此活动线程的选项?您应该在创建ThreadPoolTaskExecutor
时进行设置
默认值为false
,通过中断正在进行的任务并清除队列立即关闭。查看线程中断。thread.stop()它!把这些线程拍下来,这样他们就可以知道谁是他们的主人了。谢谢,但是我得到一个异常,它说java.lang.InterruptedException:sleep interrupted
每个线程都有一个布尔标志,表示它的中断状态。最初,每个线程的状态都设置为false。如果线程在join或sleep等可中断方法期间中断,它将取消阻止并抛出InterruptedException。你也应该处理好它。@GreenLeie这是一篇关于处理中断异常的好文章。谢谢,这篇文章对理解有很大帮助。很好,我很高兴,因为它可以帮助你。