java 停止執行緒
stop()已經過時.
停止執行緒:run()方法結束。
開啟多執行緒執行,通常程式碼都是迴圈結構。
只要控制住迴圈,就可以讓run()結束,也就結束了執行緒。
class StopThread implements Runnable { private boolean flag = true; @Override public void run() { while (flag) { System.out.println(Thread.currentThread().getName() + "...run"); } } public void changeFlag() { flag = false; } }public class StopThreadDemo { public static void main(String[] args) { StopThread st = new StopThread(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while (true) { if (num++ == 60) { st.changeFlag(); break; } System.out.println(Thread.currentThread().getName() + "......" + num); } } }
特殊情況:當執行緒處於凍結狀態就不會讀取到標記,那麼執行緒也就不會結束。
當沒有指定的方式讓凍結的執行緒恢復到執行狀態時,這時需要對凍結進行清除,強制讓執行緒恢復到執行狀態中來,這樣就可以操作標記讓執行緒結束。
Thread類中提供了該方法:interrupt();
class StopThread implements Runnable { private boolean flag = true; @Override public synchronized void run() { while (flag) { try { wait(); } catch (InterruptedException e) { System.out.println(Thread.currentThread().getName() + "...Exception"); flag = false; } System.out.println(Thread.currentThread().getName() + "...run"); } } public void changeFlag() { flag = false; } }public class StopThreadDemo { public static void main(String[] args) { StopThread st = new StopThread(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while (true) { if (num++ == 60) {// st.changeFlag(); t1.interrupt(); t2.interrupt(); break; } System.out.println(Thread.currentThread().getName() + "......" + num); } System.out.println("over"); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69966782/viewspace-2683888/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【java多執行緒】(二)執行緒停止Java執行緒
- 玩轉java多執行緒 之多執行緒基礎 執行緒狀態 及執行緒停止實戰Java執行緒
- java 多執行緒之使用 interrupt 停止執行緒的幾種方法Java執行緒
- 多執行緒併發篇——如何停止執行緒執行緒
- 阿里一面:Java中如何停止執行緒?阿里Java執行緒
- Java 多執行緒 學習筆記(二)停止執行緒的幾種方法Java執行緒筆記
- 安全優雅地停止執行緒執行緒
- Java多執行緒——執行緒Java執行緒
- 怎樣停止一個正在執行的執行緒執行緒
- Java多執行緒-執行緒中止Java執行緒
- Java多執行緒——執行緒池Java執行緒
- Java執行緒:執行緒中斷Java執行緒
- java執行緒Java執行緒
- java 多執行緒守護執行緒Java執行緒
- Java多執行緒-執行緒通訊Java執行緒
- Java多執行緒-執行緒狀態Java執行緒
- Java多執行緒(2)執行緒鎖Java執行緒
- java多執行緒9:執行緒池Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- java執行緒執行緒休眠,sleep方法Java執行緒
- Java多執行緒——守護執行緒Java執行緒
- Java多執行緒16:執行緒組Java執行緒
- Java多執行緒18:執行緒池Java執行緒
- Java多執行緒推薦使用的停止方法和暫停方法Java執行緒
- 如何優雅的停止一個執行緒?執行緒
- Java執行緒篇——執行緒的開啟Java執行緒
- Java執行緒池二:執行緒池原理Java執行緒
- Java多執行緒-執行緒池的使用Java執行緒
- Java執行緒池一:執行緒基礎Java執行緒
- 【Java多執行緒】執行緒安全的集合Java執行緒
- 【Java】【多執行緒】執行緒池簡述Java執行緒
- java多執行緒系列之執行緒池Java執行緒
- Java執行緒:執行緒的同步與鎖Java執行緒
- Java執行緒中斷與終止執行緒執行Java執行緒
- 【Java多執行緒】輕鬆搞定Java多執行緒(二)Java執行緒
- java執行緒之守護執行緒和使用者執行緒Java執行緒
- Java如何停止執行緒,確定你知道的都是正確的麼?Java執行緒
- Java通過在主迴圈中判斷Boolean來停止執行緒JavaBoolean執行緒