我們可以使用interrupt()方法來結(jié)束線程
此方法分為兩種情況:
(1)線程處于阻塞狀態(tài),如使用了sleep方法。
(2)使用while(!isInterrupted()){……}來判斷線程是否被中斷。
在第一種情況下使用interrupt方法,sleep方法將拋出一個InterruptedException異常,而在第二種情況下線程將直接退出。
(視頻教程推薦:java視頻)
具體代碼:
public class ThreadInterrupt extends Thread { public void run() { try { sleep(50000); // 延遲50秒 } catch (InterruptedException e) { System.out.println(e.getMessage()); } } public static void main(String[] args) throws Exception { Thread thread = new ThreadInterrupt(); thread.start(); System.out.println("在50秒之內(nèi)按任意鍵中斷線程!"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("線程已經(jīng)退出!"); } }
輸出結(jié)果:
在50秒之內(nèi)按任意鍵中斷線程! sleep interrupted 線程已經(jīng)退出!
推薦教程:java開發(fā)入門