通過簡單的售票程式理解多執行緒

2022-08-03 12:18:13 字數 682 閱讀 7676

售票程式要求:1:多個視窗同時賣票  2:同一編號的票的不能多次賣出

錯誤程式解析:

public class ticketdemo 

}class ticket extends thread

public void run()

} }}

執行此程式,會出現同一編號的票被多次賣出,因為分別構造了三個物件,ticket都是從100開始的,要滿足條件可以將ticket定義為static的,即private static int tlcket=100; 

被static修飾的成員變數和成員方法獨立於該類的任何物件。也就是說,它不依賴類特定的例項,被類的所有例項共享。也就是說,三個物件共用乙個ticket,但是由於static生命週期太長,一般不定義為static的,

所以可以通過實現runnable介面來實現這個條件:

public class ticketdemo2 

}class ticket2 implements runnable

} }}

定義類ticket2實現runnable介面,並覆蓋其run方法,在主類中例項化ticket2的物件,並通過thread建立多執行緒,因為自定義的run方法所屬的物件是ticket2類的物件,所以需要ticket2的物件傳遞給thread類的物件,最後呼叫start()方法執行多執行緒

java多執行緒簡單模擬售票

packagetest 模擬售票 author administrator publicclassbuyticket 多執行緒的實現方法 1 繼承 thread類 2 實現runnable介面 售票類 利用extends thread 實現多執行緒 author administrator clas...

簡單的多執行緒理解

c 本身並沒有提供任何多執行緒機制,但是在windows下,我們可以呼叫sdk win32 api來編寫多執行緒的程式,下面就此簡單的講一下 建立執行緒的函式 handle createthread lpsecurity attributes lpthreadattributes,sd size t...

簡單的多執行緒程式

下面是一段在windows環境下,建立多個執行緒執行程式的一段 這段 我去年就見過了,雖然挺簡單的,但是一直沒有在意,這次重新看它,希望能夠看出點不一樣的東西,平行計算一直是我乙個非常喜歡的研究方向.在自己寫的過程當中,還有乙個地方出現了乙個小小的錯誤,我想這如果不是我自己重新又寫了一遍是不會發現這...