Java中原來在Thread中提供了stop()方法來終止線程,但這個方法是不安全的,所以一般不建議使用。
本文向大家介紹使用interrupt方法中斷執行緒。
使用interrupt方法來終端執行緒可分為兩種情況:
(1)執行緒處於阻塞狀態,如使用了sleep方法。
(2)使用while(!isInterrupted()){……}來判斷執行緒是否被中斷。
在第一種情況下使用interrupt方法,sleep方法將拋出一個InterruptedException例外,而在第二種情況下執行緒將直接退出。下面的程式碼示範了在第一種情況下使用interrupt方法
/* author by w3cschool.cc ThreadInterrupt.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秒之内按任意键中断线程!"); System.in.read(); thread.interrupt(); thread.join(); System.out.println("线程已经退出!"); } }
以上程式碼運行輸出結果為:
在50秒之内按任意键中断线程! sleep interrupted 线程已经退出!
以上就是Java 實例- 終止執行緒的內容,更多相關內容請關注PHP中文網(www.php .cn)!