【发布时间】:2012-06-11 11:01:33
【问题描述】:
我正在Weblogic server (WLS) 内启动一个 java 线程池 ThreadPoolExecutor(具有核心池大小)。要正常关闭池,我需要在此池上调用 shutdown()。但是由于我无法控制的原因,我无法在此 WLS 中添加任何应用程序生命周期侦听器,这意味着我没有任何关闭挂钩来调用此方法。
所以我正在考虑将池中的线程作为守护线程,这样WLS JVM 在关闭时不会等待这些线程完成。否则 JVM 不会正常关闭,因为池中的核心线程始终在运行。
将线程池中的线程作为守护进程有什么缺点吗?我了解守护线程,当JVM退出时,这些线程永远不会被正常清理,任何运行的东西都不会正常完成。此问题仅在关机阶段出现。
在线程池中创建线程守护程序还有其他问题吗? (或更好的方法)
【问题讨论】:
-
与守护线程相关的问题将与这些线程实际执行的操作有关。只有你知道这些线程执行什么任务。
-
@mprabhat 谢谢。我需要一个具有一些非常具体的自定义功能的线程池。所以不能使用工作管理器。
-
假设你还没有看过最后一个例子here。
标签: java threadpool