为了账号安全,请及时绑定邮箱和手机立即绑定

关于Sleep对interrupt的影响

为什么run方法中改成sleep就导致中断状态有问题,而main方法中的sleep调用却没问题

正在回答

2 回答

main方法也是一个线程,但是有没有其他线程对main方法的线程执行了中断命令。没有,所以sleep没问题

run方法也是个线程,sleep也没问题,但是sleep方法在执行期间不能被中断,中断就给你抛异常。你不去动中断标志也没事。但是你在mian方法执行时候做了run方法所在线程的中断命令,这就是触雷了。。。你完全可以在sleep的try...catch里面this.interrupt();一下,再中断一次也是没问题的

0 回复 有任何疑惑可以回复我~
#1

bbug

sleep不是yield,sleep执行的时候不释放对象锁的
2017-01-06 回复 有任何疑惑可以回复我~

明白了。Thread指代main方法这个主线程,thread指代分支线程。主线程运行的sleep是没遇到中断执行完毕的,而分支有sleep遇到了中断命令

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
深入浅出Java多线程
  • 参与学习       186085    人
  • 解答问题       464    个

带你一起深入浅出多线程,掌握基础,展望进阶路线

进入课程

关于Sleep对interrupt的影响

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信