1

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

2 回答 2

1

如果它确实是一个守护线程,那么它不会让您的应用程序保持活动状态。您的问题出在其他地方(或者它不是真正的守护线程)。

于 2013-02-20T01:10:00.223 回答
0

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

于 2013-02-20T03:59:30.060 回答