我没有调用Thread.interrupted时收到InterruptedException

时间:2013-06-13 15:19:25

标签: java multithreading

我遇到的情况是InterruptedException,但我在Thread.interrupt()方法的开头放了一个断点,没有命中。

还有什么可能导致InterruptedException被抛出?请注意,我只在Windows上遇到此问题,相同的代码在Linux上运行正常。由于中断方法委托给本机调用interrupt0,我猜它来自那里。但我该如何进一步调查?

由于

修改

我发现了我的问题。这也是我对中断机制的误解。确实调用了Thread.interrupt。在我开始wait()之前很久就会调用它。但是当线程激活了中断标志时,第一次调用wait会立即抛出异常。

在我的例子中,log4j在尝试在无效地址上创建NonBlockingSocketAppender时设置了中断标志。奇怪的是,它会中断当前正在运行的线程......

0 个答案:

没有答案