我是这么理解的,不知道对不对,请高手来看下啦:) try {
Thread.sleep(1000);
} catch (InterruptedException e) { //我感觉这个异常的含义是
//想睡没睡成,正要躺下的时候,枕头被人拿走了
//一旦睡成了,是不会抛出异常的,因为线程被阻塞了
e.printStackTrace();
}
Thread.sleep(1000);
} catch (InterruptedException e) { //我感觉这个异常的含义是
//想睡没睡成,正要躺下的时候,枕头被人拿走了
//一旦睡成了,是不会抛出异常的,因为线程被阻塞了
e.printStackTrace();
}
只能用这种捕捉异常的方式来打断执行的线程
事实上很多程序都是通过抛出 InterruptedException 来让线程终止执行的。
thread.interrupt()的动作就是抛出该exception。
这个有问题吧?线程既然已经睡了,就不再占用CPU了,也就无所谓阻塞了吧?还有一个问题了:既然已经睡了,那么到底是谁叫醒的呢?