spring 管理的线程池实现优雅关闭

Posted 蟑螂恶霸的开发笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 管理的线程池实现优雅关闭相关的知识,希望对你有一定的参考价值。

 

 

创建线程池时, setWaitForTasksToCompleteOnShutdown   setAwaitTerminationSeconds

// 将ThreadPoolTaskExecutor实例交给Spring管理
@Bean
public ThreadPoolTaskExecutor threadPoolTaskExecutor() 
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    executor.setCorePoolSize(1);
    executor.setMaxPoolSize(1);
    
    // 告诉线程池,在销毁之前执行shutdown方法
    executor.setWaitForTasksToCompleteOnShutdown(true);
    // shutdown\\shutdownNow 之后等待3秒
    executor.setAwaitTerminationSeconds(3);
    
    return executor;

————————————————
版权声明:本文为CSDN博主「神的力量」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq271859852/article/details/107442161

关闭线程池

@Component
public class ContextClosedHandler implements ApplicationListener<ContextClosedEvent> 
    // 直接注入
    @Resource
    private ThreadPoolTaskExecutor executor;

    @Override
    public void onApplicationEvent(ContextClosedEvent event) 
            // 关闭线程池
        executor.destroy();
    

 

转自  https://blog.csdn.net/qq271859852/article/details/107442161

 

以上是关于spring 管理的线程池实现优雅关闭的主要内容,如果未能解决你的问题,请参考以下文章

Java基础干货如何优雅关闭线程池实践总结

如何优雅的关闭线程池?

SpringBoot - 优雅的实现异步编程

如何优雅的关闭Java线程池

优雅关闭线程池

深入浅出多线程编程实战优雅关闭线程池