Java中的守护进程线程数
Posted
技术标签:
【中文标题】Java中的守护进程线程数【英文标题】:Daemon Thread Count in Java 【发布时间】:2018-05-16 05:44:48 【问题描述】:有没有办法获取在 java 中运行的活动守护线程的计数?
我使用了Thread.getAllStackTraces().keySet().size()
,但它没有给出正确的结果。
This question 引用了守护线程的计数,但它没有任何相同的代码。
有人可以在这方面帮助我吗,或者任何关于这方面的参考资料也会有很大帮助。
提前致谢!
【问题讨论】:
【参考方案1】:您可以通过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
【讨论】:
【参考方案2】:我认为您可以使用ThreadMXBean#getDaemonThreadCount()
API,它返回当前的实时守护线程数。
ManagementFactory.getThreadMXBean().getDaemonThreadCount();
更多信息请关注link。
【讨论】:
【参考方案3】:您可以为此编写自定义实现
int daemonThreadCount = 0;
for (Thread thread : Thread.getAllStackTraces().keySet())
if (thread.isDaemon())
daemonThreadCount++;
【讨论】:
这给了我错误,我使用了下面的代码, Set以上是关于Java中的守护进程线程数的主要内容,如果未能解决你的问题,请参考以下文章