Java 中的守护进程线程数

Daemon Thread Count in Java

有没有办法获取 java 中活动守护线程 运行 的数量?

我用过,Thread.getAllStackTraces().keySet().size()但是没有给出正确的结果。

This question 参考了守护线程的计数,但它没有任何相同的代码。

有人能帮我解决这个问题吗?或者任何关于这个的参考资料也会有很大帮助。

提前致谢!

您可以像这样编写自定义实现

int daemonThreadCount = 0;
for (Thread thread : Thread.getAllStackTraces().keySet()) {
    if (thread.isDaemon()) {
        daemonThreadCount++;
    }
}

我想你可以使用 ThreadMXBean#getDaemonThreadCount() API 其中 returns 当前活动守护进程线程数。

ManagementFactory.getThreadMXBean().getDaemonThreadCount();

更多信息请关注link

您可以通过 Thread.getAllStackTraces 完成:

public static void main(String[] args) {
   Set<Thread> threads =  Thread.getAllStackTraces().keySet();
   threads.forEach(t -> {
   System.out.println(t.getName()+ " : " + t.isDaemon()); // count if isDaemon is true
   });

}

O/P :

Signal Dispatcher : true 
main : false 
Finalizer : true 
Reference Handler : true