使用原有的停止方法,目前已經廢棄(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...