繁体   English   中英

Java中的守护程序线程计数

[英]Daemon Thread Count in Java

有没有一种方法来获取在Java中运行的活动守护线程的数量?

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

这个问题参考了守护程序线程的数量,但是没有相同的代码。

有人可以帮我这个忙吗,或者对此有任何参考也会很有帮助。

提前致谢 !

您可以通过Thread.getAllStackTraces做到这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

我认为您可以使用ThreadMXBean#getDaemonThreadCount() API来返回当前活动守护线程的数量。

ManagementFactory.getThreadMXBean().getDaemonThreadCount();

欲了解更多信息,请点击链接

您可以为此编写自定义实现,例如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM