Sonar提到,这个Java代码应该与lambda一起使用,但我从未使用过lambda,也不知道如何使用它。有人能指引我使用正确版本的代码吗?
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
closeable.close();
logger.info("Close closeable.");
executorPool.shutdown();
logger.info("Shutdown executorPool");
}
}));
executorPool
指的是像ThreadPoolExecutor
这样的执行器服务,在JVM关闭挂钩中调用shutdown()
并没有太多意义,因为shutdown()
仅启动线程池的关闭,它是否有机会在JVM以硬方式杀死所有线程之前完成(或根本没有进展)是不可预测的。并没有任何必要在JVM自动结束线程之前手动结束线程... - Holger