我可能无意中改变了我项目中的某些内容。现在,当一个关键线程不应该被中断时,isInterrupted
在线程应该运行时返回true。
因为没有人会为我找到问题所以我会在找到它的方法上寻求帮助。我需要找到:
因为IDE工具和调试器可能在我的搜索中起作用,所以我将使用NetBeans IDE添加它。
答案 0 :(得分:4)
您可以在特殊线程下运行它,该线程在中断时记录堆栈:
// A simple process.
class Process implements Runnable {
@Override
public void run() {
try {
while (true) {
Thread.sleep(1000L);
}
} catch (InterruptedException ex) {
System.out.println("Interrupted");
}
}
}
public void test() throws InterruptedException {
Thread t = new Thread(new Process()) {
@Override
public void interrupt() {
// Log a stack trace when iterrupted.
new Exception("Where the hell did that come from!").printStackTrace(System.out);
// Pass it up the chain.
super.interrupt();
}
};
t.start();
Thread.sleep(2048);
t.interrupt();
t.join();
}