被阻塞的线程被调用了interrupted()之后的疑问
来源:8-9 interrupt函数
莨菽菽
2020-05-10
被阻塞线程抛出InterruptedException就立刻恢复成runnable状态,立马就拿到了cpu,怎么有一种强行抢到cpu执行权的感觉,如果我在catch(InterruptedException e)里写业务逻辑,是不是感觉能很鸡贼的能很快抢占cpu的使用权?还有就是如果要在catch()块里安全的结束线程,要调用什么方法呢?因为之前的run()里的业务可能才执行到一半,在catch()里结束线程不一样还是没执行完成业务逻辑?
写回答
1回答
-
同学好,当一个方法抛出 InterruptedException 时,这意味着,如果执行该方法的线程被中断,它将尝试停止它正在做的事情而提前返回,并通过抛出 InterruptedException 表明它提前返回。 行为良好的阻塞库方法应该能对中断作出响应并抛出 InterruptedException,以便能够用于可取消活动中,而不至于影响响应。
所以InterruptedException并不会恢复runnable呀,取决于程序,该进锁池还是要进的。。
032020-05-12
相似问题