在java中,我有2个线程同时启动。但是,我注意到线程2被阻止但我不知道在哪里。在java中有没有办法找出线程被阻塞/等待的位置?谢谢你。
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以使用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]);
}
}
}
答案 2 :(得分:1)
您可以使用jstack
查找线程被阻止的位置。但是,如果要在同一程序中检查线程,可以使用thread.getStackTrace()