课程
/后端开发
/Java
/深入浅出Java多线程
为什么run方法中改成sleep就导致中断状态有问题,而main方法中的sleep调用却没问题
2016-10-25
源自:深入浅出Java多线程 3-3
正在回答
main方法也是一个线程,但是有没有其他线程对main方法的线程执行了中断命令。没有,所以sleep没问题
run方法也是个线程,sleep也没问题,但是sleep方法在执行期间不能被中断,中断就给你抛异常。你不去动中断标志也没事。但是你在mian方法执行时候做了run方法所在线程的中断命令,这就是触雷了。。。你完全可以在sleep的try...catch里面this.interrupt();一下,再中断一次也是没问题的
bbug
明白了。Thread指代main方法这个主线程,thread指代分支线程。主线程运行的sleep是没遇到中断执行完毕的,而分支有sleep遇到了中断命令
举报
带你一起深入浅出多线程,掌握基础,展望进阶路线
3 回答关于sleep();
4 回答sleep()
5 回答sleep的问题
5 回答interrupt并不能中断线程那它为啥叫interrupt啊
2 回答sleep问题