Aks*_*ert 4 java executorservice threadpool
在实用程序库中,我正在创建ExecutorService
ExecutorService es = Executors.newSingleThreadExecutor();
Run Code Online (Sandbox Code Playgroud)
然后主线程将一些任务发布到此ExecutorService.当主线程完成时,我想关闭ExecutorService以允许应用程序退出.
问题是我只能更改实用程序库中的代码.我考虑过的一个选择是使用守护进程线程.但是,在发布到服务的任务完成之前,它会突然关闭.
用于Runtime#addShutdownHook()向当前运行时添加关闭挂钩.
例如
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
es.shutdown();
try {
es.awaitTermination(5, TimeUnit.SECONDS);
} catch (InterruptedException e) {
logger.info("during await",e);
}
}
});
Run Code Online (Sandbox Code Playgroud)
在实用程序类的构造/初始化时执行此操作.
| 归档时间: |
|
| 查看次数: |
1191 次 |
| 最近记录: |