課程
/后端開發
/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();
5 回答sleep的問題
5 回答interrupt并不能中斷線程那它為啥叫interrupt啊
4 回答sleep()
2 回答sleep問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-01-06
main方法也是一個線程,但是有沒有其他線程對main方法的線程執行了中斷命令。沒有,所以sleep沒問題
run方法也是個線程,sleep也沒問題,但是sleep方法在執行期間不能被中斷,中斷就給你拋異常。你不去動中斷標志也沒事。但是你在mian方法執行時候做了run方法所在線程的中斷命令,這就是觸雷了。。。你完全可以在sleep的try...catch里面this.interrupt();一下,再中斷一次也是沒問題的
2016-10-25
明白了。Thread指代main方法這個主線程,thread指代分支線程。主線程運行的sleep是沒遇到中斷執行完畢的,而分支有sleep遇到了中斷命令