创建守护进程线程的线程池执行器是否需要关闭



这似乎发生在我的应用程序中,但几乎可以肯定是我的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;
        }
    });

如果它真的是一个守护进程线程,那么它就不能保持应用程序的活力。您的问题在其他地方(或者它不是真正的守护进程线程)。

不确定这些守护进程线程是通过您的程序创建的,但理想情况下,我们应该在完成工作后尝试关闭执行器服务。原因是,我在许多应用程序中观察到,当这些服务没有正确关闭时;线程数量不断增加,这使得应用程序不稳定。

相关内容

  • 没有找到相关文章

最新更新