为ExecutorService增加shutdown hook详解编程语言
编程语言 详解 增加 hook shutdown ExecutorService
2023-06-13 09:20:45 时间
public class ShutdownHook { private static final ShutdownHook INSTANCE = new ShutdownHook(); private List ExecutorService executorServices = Lists.newArrayList(); private AtomicBoolean closed = new AtomicBoolean(false); public static ShutdownHook getInstance() { return INSTANCE; private ShutdownHook() { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { shutdown(); }); @PreDestroy public void shutdown() { if (!closed.compareAndSet(false, true)) { return; for (ExecutorService executorService : executorServices) { tryShutdownNow(executorService); private void tryShutdownNow(ExecutorService executorService) { try { executorService.shutdownNow(); } catch (Throwable e) { //ignore logger maybe has been destroyed try { executorService.awaitTermination(1, TimeUnit.SECONDS); } catch (InterruptedException e) { //ignore logger maybe has been destroyed /** * 注册executorService * @param executorService public ExecutorService register(ExecutorService executorService) { this.executorServices.add(executorService); return executorService; }
15889.html
cjava相关文章
- MyBatis动态sql详解编程语言
- Mybatis 入门详解编程语言
- Python生成验证码实例详解编程语言
- python 操作 ssh详解编程语言
- JavaScript实现自适应窗口大小的网页详解编程语言
- 使用JavaScript写的一个旋转的彩圈详解编程语言
- java读写Properties文件详解编程语言
- HTML 简介详解编程语言
- 在Servlet中获取spring管理的bean详解编程语言
- 二分搜索树详解编程语言
- 把EXCEL用程序导入到ORACLE中(SpringMVC+MyBatis)详解编程语言
- 堆和栈的区别详解编程语言
- bootstrap学习笔记(增加网格应用)详解编程语言
- java 两个list 交集 并集 差集 去重复并集详解编程语言
- hibernate+oracle+主键varchar2类型,增加序列策略注解失败详解编程语言
- php面试题汇总四(基础篇附答案)详解编程语言
- java操作xml之dom4j的增删改查详解编程语言
- ABAP 输出方式详解编程语言
- [数据库基础]——图解详解编程语言
- Sap SE16n 修改表数据详解编程语言
- jquery json对象转换详解编程语言
- S/4 HANA ML error分析详解编程语言
- 【ACM】无聊的小明详解编程语言
- Java基础-数组详解编程语言
- 判断两个里的数据是否相等详解qq123 2021年06月03日 编程语言 156 0 编程语言