實現Java刷票程序的一種方法是使用多線程來模擬多個用戶進行搶票操作。下面是一個簡單的示例:
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class TicketBookingSystem {private static int seatsAvailable = 10; // 總共有10個座位可用private static Object lock = new Object(); // 創建一個鎖對象用于同步public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(5); // 創建一個線程池,最多同時運行5個線程for (int i = 0; i < 20; i++) { // 模擬20個用戶搶票操作executorService.execute(() -> {try {bookTicket();} catch (InterruptedException e) {e.printStackTrace();}});}executorService.shutdown(); // 關閉線程池}private static void bookTicket() throws InterruptedException {synchronized (lock) { // 獲取鎖對象,確保同一時刻只有一個線程可以執行以下代碼塊if (seatsAvailable > 0) { // 如果還有座位可用System.out.println("用戶 " + Thread.currentThread().getName() + " 搶到了一張票");seatsAvailable--; // 減少可用座位數量Thread.sleep(1000); // 模擬用戶操作時間} else {System.out.println("用戶 " + Thread.currentThread().getName() + " 沒有搶到票");}}}}
以上代碼創建了一個線程池,模擬了20個用戶同時進行搶票操作。使用synchronized
關鍵字確保同一時刻只有一個線程可以執行bookTicket()
方法,通過判斷seatsAvailable
變量來判斷是否還有座位可用。如果有座位可用,則搶到票,并將可用座位數量減少1;如果沒有座位可用,則沒有搶到票。為了模擬用戶操作時間,使用Thread.sleep()
方法使線程休眠1秒。
請注意,以上代碼只是一個簡單的示例,并沒有考慮更復雜的情況,比如可能會出現競態條件或線程安全問題。在實際應用中,可能需要更復雜的并發控制和線程安全處理。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(相關資料圖)最近這段時間總有小伙伴問小編下顎粉碎踢詳細怎么使用是什么,小編為此在網上搜尋了一些有關于下顎粉碎踢詳細怎么使用的知識送給大家,希望能解答各位小伙伴的疑惑。下顎粉碎踢是攻擊對手下顎而造成對手腦震蕩而導致的暈眩,如果力量夠強大可以使對方下顎粉碎,普通的也可以造成對手輕微腦震蕩而暈眩,用出就差不多可以一擊必殺。 就算對手的下顎是鋼板做的也沒用,穿透力會直接造成腦震蕩。訓練方法:需要鍛煉韌性...
在如今,很多支付寶的用戶,都想提高自己的芝麻信用分,這樣可以使用更多的服務,很多人對此的認識不多,那么芝麻信用分多久更新一次?芝麻信用分怎么提高?下文就來帶大家了解一下。芝麻信用分是一個月更新一次的。從2015年7月起,芝麻信用分每月評估一次,每個月6號芝麻信用會重新對您的信用狀況進行評估。芝麻信用分從五個維度來評估,也就是說,只要用戶增加守約記錄、多積累消費、還款的行為、多在支付寶中進行理財、完...
很多的投資者在投資的過程中都有見過美聯儲這一名詞,有不少的投資者表示,想要了解一下美聯儲的股東是哪些,那么今天我們就來給大家講解一下美聯儲的股東是哪些。美聯儲,作為私人銀行,實際上相當于美國,的央行,可以發行美元。更重要的是,美聯儲完全獨立于政府,即政府不能強迫美聯儲做任何事情?相反,它要求美聯儲美國政府無權發行貨幣。美國,政府缺錢,只能發行國債,以未來的稅收作為抵押,然后用國債作為抵押在美聯儲,...