1. 程式人生 > >interrupt和isInterrupted的基本使用方法

interrupt和isInterrupted的基本使用方法

exc 匿名類 cat rup sin 毫秒 語句 如果 構造函數

java線程是協作式,而非搶占式

調用一個線程的interrupt() 方法中斷一個線程,並不是強行關閉這個線程,只是跟這個線程打個招呼,將線程的中斷標誌位置為true,線程是否中斷,由線程本身決定。

isInterrupted() 判定當前線程是否處於中斷狀態。

static方法interrupted() 判定當前線程是否處於中斷狀態,同時中斷標誌位改為false。

方法裏如果拋出InterruptedException,線程的中斷標誌位會被復位成false,如果確實是需要中斷線程,要求我們自己在catch語句塊裏再次調用interrupt()。

定義一個匿名類,繼承了Thread類,定義一個構造函數,把名字傳遞進去,定義一個新的線程之後,在主線程中停止20毫秒,把線程中止掉,然後while循環裏面調用isInterrupted判斷是否中止了線程,然後中止線程之後把線程執行完畢,請看圖

技術分享圖片

技術分享圖片

interrupt和isInterrupted的基本使用方法