thread類的start()方法啟動多執行緒,thread原本也有提供有停止方法stop(),但從1.2開始已經廢除了,因為這種方法可能造成執行緒的死鎖,現在實現執行緒的停止需要通過一種柔和的方式進行。
範例:實現執行緒柔和的停止
package multithreading;
public class stopthethread catch (interruptedexception e)
system.out.println(thread.currentthread().getname() + "正在執行"+num++);
}},"執行執行緒").start();
try catch (interruptedexception e)
flag = false;//停止程式
}}
如果有其他東西控制flag的內容,對於程式的停止不是立刻停止的,而是在執行中判斷flag的內容來完成。 優雅的停止執行緒,後台守護執行緒,volatile
停止執行緒有stop,destroy等。這些方法已經被停用。因為這些方法會造成執行緒的死鎖。推薦用下面這種 public class threadelegantstopcatch interruptedexception e system.out.println thread.currentthre...
執行緒停止繼續 如何優雅的停止乙個執行緒?
在之前的文章中 i code.online 併發程式設計 執行緒基礎 我們介紹了執行緒的建立和終止,從原始碼的角度去理解了其中的細節,那麼現在如果面試有人問你 如何優雅的停止乙個執行緒?你該如何去回答尼 能不能完美的回答尼?這裡有個思考 當處於sleep時,執行緒能否感受到中斷訊號?對於執行緒的停止...
如何優雅的停止乙個執行緒
首先我們先了解下,執行緒是分為使用者執行緒和守護執行緒的,他們的區別就在 使用者執行緒當我們的主線程停止後,使用者執行緒不會隨著主線程停止。守護執行緒當我們的主線程停止後,會跟隨著主線程一起停止。一般我們建立的都是使用者執行緒,那守護執行緒有哪些呢,例如跟程式一起啟動的gc執行緒就是守護執行緒。停止...