慕粉1474367326
2016-10-25 22:53
为什么run方法中改成sleep就导致中断状态有问题,而main方法中的sleep调用却没问题
main方法也是一个线程,但是有没有其他线程对main方法的线程执行了中断命令。没有,所以sleep没问题
run方法也是个线程,sleep也没问题,但是sleep方法在执行期间不能被中断,中断就给你抛异常。你不去动中断标志也没事。但是你在mian方法执行时候做了run方法所在线程的中断命令,这就是触雷了。。。你完全可以在sleep的try...catch里面this.interrupt();一下,再中断一次也是没问题的
明白了。Thread指代main方法这个主线程,thread指代分支线程。主线程运行的sleep是没遇到中断执行完毕的,而分支有sleep遇到了中断命令
深入浅出Java多线程
186088 学习 · 464 问题
相似问题