執行緒基礎二 賣票問題

2021-07-15 12:28:52 字數 462 閱讀 4130

學習執行緒的過程中,肯定會遇到賣票問題,假設有三個視窗要賣2000張票,程式正確實現這個問題,我們要考慮幾個問題:一,怎麼實現多個視窗共享乙個資源;二,在售票過程中怎麼保持各執行緒的原子性,防止兩個視窗同時**一張票的情況。我們看以下**

/*

* 功能:賣票

*/package demo06;

public class demo06

}//售票視窗類

class ticketwindow implements runnablecatch(exception e)

//認為if else 要保證原子性(同步**塊)

synchronized(this)

else

}} }

}

在這裡,我們用thread例項多個物件,利用各個物件實現多視窗售票。這裡的synchronized來實現乙個**塊的原子性。

多執行緒賣票問題

我們模擬乙個多視窗同時賣票的情景。問題的關鍵在於兩個人不能賣出相同編號的一張票。兩個關鍵字 static 方法或物件一定要是靜態的 synchronized 這個是鎖的關鍵字 加了synchronized 且有static 的方法稱為類級別的鎖 加了synchronized 沒有static 的方法...

多執行緒經典問題 賣票問題

package com.llb.賣票.my 需求 某電影院目前正在上映國產大片,共有100張票,而它有3個視窗賣票,請設計乙個程式模擬該電影院賣票 思路 定義乙個類ticket實現runnable介面,裡面定義乙個成員變數 private int ticketcount 100 在ticket類中重...

賣票 多執行緒模擬賣票系統

網上搶票,方便又高效,很舒服。應用多執行緒的同步執行可以模擬很多人搶票,而且不會發生衝突。下面,我們就來利用多執行緒來模擬一把。include include include int tickets 100 定義票數為全域性變數,所以執行緒都可訪問 pthread mutex t mutex 定義互...