这似乎发生在我的应用程序中,但几乎可以肯定是我的Maven / JUnit测试用例环境中发生的其他事情的结果(代码我还没有完全阅读 - 维护一个外国项目)。以下代码按需运行,TPE不需要关闭:
final ScheduledThreadPoolExecutor pool = new ScheduledThreadPoolExecutor(1, new ThreadFactory() {
@Override
public Thread newThread(Runnable task) {
Thread thread = new Thread(task, replenisherThreadName);
thread.setDaemon(true);
return thread;
}
});
答案 0 :(得分:1)
如果它确实是一个守护程序线程,那么它不会使您的应用程序保持活动状态。你的问题出在其他地方(或者它不是真的一个守护程序线程)。
答案 1 :(得分:0)
不确定这些守护程序线程是通过您的程序创建的,但理想情况下我们应该在完成工作后尝试关闭执行程序服务。原因是,我在许多应用程序中都观察到,当这些服务未正常关闭时;线程数继续堆积,这使应用程序不稳定。