我是这么理解的,不知道对不对,请高手来看下啦:) try {
Thread.sleep(1000);
} catch (InterruptedException e) { //我感觉这个异常的含义是
//想睡没睡成,正要躺下的时候,枕头被人拿走了
//一旦睡成了,是不会抛出异常的,因为线程被阻塞了
e.printStackTrace();
}

解决方案 »

  1.   

    可以这么理解。我认为确切说应该是sleep没有睡足指定的时间
      

  2.   

    理解是不对的,sleep的阻塞是可以被打断的,而i/o和synchronize的阻塞是不能被interrupt()的
    只能用这种捕捉异常的方式来打断执行的线程
      

  3.   

    你可以理解成本来打算睡10个小时的,结果睡了5个小时被叫醒了。
    事实上很多程序都是通过抛出 InterruptedException 来让线程终止执行的。
    thread.interrupt()的动作就是抛出该exception。
      

  4.   

    这个是java系统中唯一一个不是异常的异常。
      

  5.   

    当你的但前线程被阻塞了的话,这是调用sleep()方法则回报该异常的。
      

  6.   


    这个有问题吧?线程既然已经睡了,就不再占用CPU了,也就无所谓阻塞了吧?还有一个问题了:既然已经睡了,那么到底是谁叫醒的呢?