如何获取JVM当前运行的线程?

超级呆子 发布于 2012/02/02 11:20
阅读 2K+
收藏 1

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

我想获取在JVM上运行的所有线程,之后可以对这些线程进行一些操作,比如sleep()等

通过JMX方式也可以获取到所有线程,但是只能读他们进行只读操作,不能执行类似sleep()这样的操作

加载中
0
canghailan
canghailan

试试这样呢?

Thread[] threads = new Thread[Thread.activeCount()];
Thread.enumerate(threads);

0
超级呆子
超级呆子

恩,谢谢,这样是能得到。不过我该怎么操作这些线程呢?

如果我需要在主线程main中,操作获取的线程A,B,C。让他们都sleep(),或者join(),wait()。

我发现都不行,在mian线程中执行sleep(),就算拿到的是线程A的引用,其效果还是对mian自己sleep(),wait()和join()也是类似的,都是对自身有效。

有没有什么办法能让别的线程也暂停或者休眠吗?

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部