多線程之Thread.interrupt()方法使用

不可中斷的阻塞方法

  1. 輸入和輸出流類會阻塞等待I/O完成.但是它們不會拋出InterruptedException, 而且在被中斷的情況下也不會提前返回.
  2. 對於套接字 I/O.如果一個線程關閉套接字,則該套接字上的阻塞I/O操作將會提前結束,並且拋出SocketException
  3. java.nio 中的非阻塞 I/O 類也不支持可中斷 I/O.但是同樣可以通過關閉通道或者請求Selector上的喚醒來取消阻塞操作.
  4. 獲取一個內部鎖的操作(即:進入一個Synchronized塊)是不能被中斷的, 相比之下ReentrantLock支持可中斷的獲取模式.

Thread.interrupted()狀態

調用了Thread.interrupt()後,即使沒有拋出InterruptedException,但是Thread.interrupted()的狀態會從false轉變成true.

發佈了74 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章