猿问

获取当前在Java中运行的所有线程的列表

获取当前在Java中运行的所有线程的列表

是否可以获得当前jvm中所有正在运行的线程的列表(包括线程)?从我的班级开始)?

是否也有可能获得ThreadClass列表中所有线程的对象?

我想通过代码来完成这个任务。


开心每一天1111
浏览 1820回答 3
3回答

慕沐林林

若要获得可迭代集,请执行以下操作:Set<Thread>&nbsp;threadSet&nbsp;=&nbsp;Thread.getAllStackTraces().keySet();

30秒到达战场

获取根的句柄ThreadGroup,就像这样:ThreadGroup&nbsp;rootGroup&nbsp;=&nbsp;Thread.currentThread().getThreadGroup();ThreadGroup&nbsp;parentGroup;while&nbsp;((parentGroup&nbsp;=&nbsp;rootGroup.getParent())&nbsp;!=&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;rootGroup&nbsp;=&nbsp;parentGroup;}现在,打电话给enumerate()反复作用于根组。第二个参数允许递归获取所有线程:Thread[]&nbsp;threads&nbsp;=&nbsp;new&nbsp;Thread[rootGroup.activeCount()];while&nbsp;(rootGroup.enumerate(threads,&nbsp;true&nbsp;)&nbsp;==&nbsp;threads.length)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;threads&nbsp;=&nbsp;new&nbsp;Thread[threads.length&nbsp;*&nbsp;2];}注意如何反复调用枚举(),直到数组足够大以包含所有条目。

婷婷同学_

是的,看看获取线程列表..那一页上有很多例子。这是通过编程实现的。如果您只想在Linux上列出一个列表,那么只需使用以下命令:kill&nbsp;-3&nbsp;processidVM将对stdout执行线程转储。
随时随地看视频慕课网APP

相关分类

Java
我要回答