如何有效处理interruptException异常
对于如何有效处理interruptException异常,
参见大湿Brian ?Goetz:http://www.ibm.com/developerworks/cn/java/j-jtp05236.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?http://agapple.iteye.com/blog/970055
?
再贴上简单代码演示interruptException异常如何发生?
?
?
public class InterruptCause {public static void main(String[] args) {InterruptCause itc = new InterruptCause();InterruptThread interuptThread = itc.new InterruptThread();interuptThread.start();try {Thread.sleep(2000L);} catch (InterruptedException e) {e.printStackTrace();}interuptThread.interrupt();System.out.println("没有什么?");}class InterruptThread extends Thread{@Overridepublic void run() {System.out.println("线程名称:"+Thread.currentThread().getName());try {Thread.sleep(3000L);//Thread.sleep(1000L);//两种方式导致结果是不一样的} catch (InterruptedException e) {e.printStackTrace();}}}}
? ??对于睡眠3s,还是1s是针对main主线程的2s而设置,如果睡眠3s则会出现interruptException异常,而1s是不会发生 ? ?的,是因为3s会导致主线程优先执行interrupt方法导致的!
?