我处于捕获的情况,InterruptedException
但是我在方法的开头放置了一个断点Thread.interrupt()
并且没有命中。
还有什么可能导致InterruptedException
被抛出?请注意,我仅在 Windows 上遇到此问题,相同的代码在 Linux 上运行良好。由于中断方法委托给本机调用interrupt0,我猜它来自那里。但是我该如何进一步调查?
谢谢
编辑:
我发现了我的问题。这也是我对中断机制的误解。Thread.interrupt 确实被调用了。令我苦恼的是,它在我开始等待()之前很久就被调用了。但是由于线程激活了中断标志,所以第一次调用 wait 会立即抛出异常。
在我的例子中,是 log4j 在尝试在无效地址上创建 NonBlockingSocketAppender 时设置了中断标志。更奇怪的是它中断了它当前正在运行的线程......