[英]Find out where a thread has been blocked
在java中,我有2个线程同时启动。 但是,我注意到线程2被阻止但我不知道在哪里。 在java中有没有办法找出线程被阻塞/等待的位置? 感谢你。
您可以使用isAlive()
方法来验证线程是否仍处于活动状态。 这是一个检查内存中所有线程的示例代码:
public class ThreadStates{
public static void main(String[] args){
Thread t = new Thread();
Thread.State e = t.getState();
Thread.State[] ts = e.values();
for(int i = 0; i < ts.length; i++){
System.out.println(ts[i]);
}
}
}
您可以使用jstack
查找线程被阻止的位置。 但是,如果要检查同一程序中的线程,可以使用thread.getStackTrace()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.