![](/img/trans.png)
[英]Is Java thread a daemon 'if and only if' the creating thread is a daemon?
[英]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.