停止多執行緒錯誤方法1

2021-10-11 04:07:23 字數 684 閱讀 4226

使用原有的停止方法,目前已經廢棄(stop、suspend和resume)

/**

* 錯誤的停止方法:用stop()來停止執行緒,會導致執行緒執行一半突然停止,沒辦法完成乙個基本單位的操作(乙個連隊),會造成髒資料(多領取和少領取)

*/public class stopthread implements runnable catch (interruptedexception e)

}system.out.println("第"+i+"連隊,已經領完");}}

public static void main(string args) catch (interruptedexception e)

//會導致 流程破壞 不知道資料的正確性

thread.stop();

}}

執行結果:

第0連隊,開始領取

j:0j:1

j:2j:3

j:4j:5

j:6j:7

j:8j:9

第0連隊,已經領完

第1連隊,開始領取

j:0j:1

j:2j:3

j:4j:5

j:6j:7

j:8j:9

這樣就會導致,系統不知道當前這一隊是否領取完,因為有開始,但是沒有結束,所以這種方法是廢棄的,不可取的

Java多執行緒學習(1) 停止執行緒

呼叫interrupt方法只是對執行緒做了乙個標記 停止標記 並沒有停止執行緒的效果,需要結合以下兩種方法 如果呼叫了interrupt 方法,interrupted 返回true,看乙個例子 threadtest thread new threadtest thread.start thread....

錯誤停止執行緒

主要包括以下二大方面 第一 採用stop方法來停止執行緒,會導致執行緒執行到一半突然停止,沒辦法完成乙個基本單位的操作,會造成髒讀資料,且會釋放監視鎖 suspend方法不會釋放鎖,容易造成死鎖 第二 volatile在生產者模式下會失效,執行緒長時間阻塞,就沒法停止執行緒 描述 演示用volati...

java多執行緒停止的方法

一 如何讓乙個執行緒的停止呢?讓執行緒停止有三種方法 1.設定標記位,使執行緒正常退出。2.使用stop 方法強制退出 不建議使用 3.使用thread類中提供interrupt 來中斷執行緒。1.1設定標記使執行緒退出 public class mythread9 implements runna...