调用sleep函数,线程阻塞,是如何抛出异常的

来源:5-4 遇到阻塞

慕沐9313579

2020-09-25

老师,请问一下。sleep函数是在源码的开头来检查中断标记位,来判断抛出异常,未中断的话线程进入阻塞状态吗?
如下面图片一样。
图片描述
那么,线程阻塞过程中,能否抛出异常吗?
是不是如下理解
try {
Thread.sleep(1000);
} catch (InterruptedException e) { //我感觉这个异常的含义是
//想睡没睡成,正要躺下的时候,枕头被人拿走了
//一旦睡成了,是不会抛出异常的,因为线程被阻塞了
e.printStackTrace();
}

写回答

1回答

悟空

2020-09-27

interrupt的时候会检查是不是睡着了,就算睡成了,也会被叫醒。

1
4
悟空
“唤醒后还是自己去检查标记位”,我认为是的。
2020-09-27
共4条回复

线程八大核心+Java并发原理及企业级并发解决方案

完整的并发知识网络+丰富的工作内容分享+50余道并发高频面试题

2512 学习 · 939 问题

查看课程