優雅的停止執行緒

2021-10-14 09:33:21 字數 519 閱讀 8085

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執行緒就是守護執行緒。停止...