首页文章正文

如何优雅关闭线程池,线程池是线程安全的吗

线程池如何保证线程存活 2024-01-07 22:13 660 墨鱼
线程池如何保证线程存活

如何优雅关闭线程池,线程池是线程安全的吗

前面说了这么多,现在看来,抛开直接KILL掉程序不说,首先我们要保证程序在正常的重启期间,任务是不能丢失的,你可能先想到是实现Hook方法,在程序关闭的时候触发收尾工作,来保证线程池的正常关闭。老//释放线程池的全局锁mainLock.unlock(); } //尝试将状态变为TERMINATED tryTerminate(); } 总体来说,shutdown()方法的代码比较简单,首先检查了是否有权限来关闭线程池,如果

3.在Spring容器启动完成观察者模式中,利用ApplicationRunner接口提供的run方法,添加jvm hook钩子,以做到jvm退出时能够优雅关闭线程池。其中用到了guava的

// 创建线程池thrdpool_t*thrdpool_create(size_tnthreads,size_tstacksize);// 把任务交给线程池的入口intthrdpool_schedule(conststructthrdpool_task*task,thrdpool_t*pool);// 销毁线程池void跟shutdownNow类似,只不过它是将线程池的状态修改为SHUTDOWN状态,然后调用interruptIdleWorkers方法,来中断空闲的线程。这是interruptIdleWorkers方法的实现:跟shutdownNow

∩ω∩ 我们要想实现Java 进程的优雅关闭功能,只需要在进程启动的时候将优雅关闭的操作封装在一个Thread 中,随后将这个Thread 注册到JVM 的ShutdownHook 中就好了,当JVM 进程接收到k线程池的优雅关闭需要注意以下几点:在关闭线程池之前,必须先切断上游的流量,以避免请求被拒绝的情况发生。在调用shutdown方法之后,线程池不再接受新任务的提交,但是已经提交的

后台-插件-广告管理-内容页尾部广告(手机)

标签: 线程池是线程安全的吗

发表评论

评论列表

灯蓝加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号