在一段时间内使用 JConsole 监控我们的应用程序表明“活动线程”计数在不断增加。增加线程数对我来说听起来像是一件坏事,还是我错了?
概要:在我们的应用程序中,我们使用 Executors.newFixedThreadPool、Executors.newSingleThreadScheduledExecutor 为各种收集器创建线程池。这些收集器每隔几分钟就会被调用一次。还有一个其他服务,在每次收集期间,上述收集器都会调用 n 次。此服务生成执行 FutureTask 的单个线程 (Executors.newFixedThreadPool(1);)。对于上述所有 ExecutorServices,我们仅在捕获到异常时才调用 shutdownNow(),并将其余部分留给 GC。
1) 进程完成后是否需要关闭执行程序,还是可以依赖 GC?
感谢您的建议和见解