请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Blocked中发生异常

老师, 请问在blocked的时候也会出现发生异常直接进入terminated状态的情况吗? 因为Blocked时被interrupted不会抛出异常, 而是在下次拿到锁, 进入runnable状态之后才发现自己已经被interruputed了 (查阅资料后自己的理解, 如果有误烦请指正). 所以想问问是不是有其他的异常发生而会导致直接进入terminated状态. 谢谢!

正在回答

1回答

是的,Blocked时被interrupted不会抛出异常, 而是在下次拿到锁, 进入runnable状态之后才发现自己已经被interruputed了。

所以我理解要想处理异常,是需要等到进入runnable状态之后的。

1 回复 有任何疑惑可以回复我~
  • 提问者 Barea #1
    谢谢! 所以您在PPT中所说的"如果发生异常, 可以直接跳到terminated状态"是只适用于waiting和timed-waiting吧! 此外, 不仅仅是waiting, timed-waiting应该也是可以会进入blocked然后在抢到锁之后再进入runnable吧?
    回复 有任何疑惑可以回复我~ 2020-06-15 11:53:03
  • 悟空 回复 提问者 Barea #2
    waiting, timed-waiting也是在抢到锁之后再进入的runnable的。
    回复 有任何疑惑可以回复我~ 2020-06-15 16:00:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信