感谢所有的帮助和支持,我遇到的问题是,我有两个线程,一个是Timer线程,另一个是一些File Reader线程。现在我的主程序正在调用两个线程。定时器线程在超时时中断主程序,如果存在一些IO错误,文件读取器线程将调用主线程。所以现在问题出现了,主程序必须知道是谁解雇了中断,打印一些中断状态就可以了。那么我该如何实现呢?以下是我不想使用的一些事情。
我很感激你对此的帮助,甚至除了中断以外的其他方式也很好。
答案 0 :(得分:0)
我是通过声明一个Exception变量来做的,然后如果等待的线程得到一个设置了Exception变量的中断,我会重新抛出异常:
IOException ioex;
synchronized(lockObject) {
while( true ) {
try {
lockObject.wait();
} catch( InterruptedException e ) {
if( ioex != null ) {
throw ioex;
}
}
... normal handling ...
}
}