/**
* 版本:v1.0
* */
public
class
study_11_7
}class
ticket
implements
runnable
//extends thread
catch
(exception e)
system.out.
println
(thread.
currentthread()
.getname()
+"sale:"
+ tick--);
}//多個執行緒處理共享資料才需要上鎖
else}}
}}/** 通過分析發現列印出了0,-1等錯票
* 多執行緒的執行出現了安全問題
* 問題的原因:
* 當多條語句在操作同乙個執行緒共享資料時,乙個執行緒對多條語句只執行了一部分,還沒有執行完
* 另乙個執行緒參與進來執行,導致共享資料的錯誤。
* 解決辦法,對多條操作共享資料的語句,只能讓乙個執行緒都執行完,其他執行緒此時不可以執行
** 同步**塊:
* synchronized(物件)
* * */
/** synchronized好處:安全
* synchronized壞處:慢,消耗資源,多個執行緒都需要判斷鎖
* */
使用Runnable介面建立執行緒
實現 runnable 介面的類必須使用 thread 類的例項才能建立執行緒。通過 runnable 介面建立執行緒分為兩步 1.將實現runnable介面的類例項化。2.建立乙個thread物件,並將第一步例項化後的物件作為引數傳入thread類的構造方法。最後通過thread類的start方法...
多執行緒 建立執行緒 實現Runnable介面
class twindow implements runnable class ticket 該 執行後,沒有結果。因為雖然四個執行緒已經開始執行,但是它們呼叫的是thread類中的run 而該run 並沒有任何內容。問題來了,twindow中的run 方法為賣票動作,要如何呼叫它呢。需求 簡單的買...
通過實現Runnable介面建立執行緒
實現runnable介面來建立執行緒類 建立runnable實現類的物件 以runnable實現類的物件作為thread的目標target來建立thread物件 package newthread public class twothread implements runnable public s...