首页 >Java >java教程 >如何以编程方式列出 Java 程序中所有正在运行的线程?

如何以编程方式列出 Java 程序中所有正在运行的线程?

Barbara Streisand
Barbara Streisand原创
2024-12-14 21:10:14971浏览

How Can I Programmatically List All Running Threads in a Java Program?

以编程方式列出在 Java 中运行的线程

Java 提供了一种内置机制来列出 Java 虚拟机 (JVM) 中的所有活动线程。这包括当前类创建的线程和外部进程启动的线程。

获取可迭代线程集

要检索所有正在运行的线程的可迭代集,请使用以下代码:

Set<Thread> threadSet = Thread.getAllStackTraces().keySet();

这种方法提供了轻量级的性能开销,通常对于合理数量的线程消耗的时间可以忽略不计(例如,在 Windows 10 上运行的 Azul JVM 16.0.1 环境中,12 个线程需要 0 毫秒)。

检索线程和类对象

此外,还可以提取与列表中的每个线程:

for (Thread thread : threadSet) {
    String threadName = thread.getName();
    Class<?> threadClass = thread.getClass();
}

这允许您检查线程属性和类信息,例如线程的名称和创建它的 Java 类。

以上是如何以编程方式列出 Java 程序中所有正在运行的线程?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn