多執行緒賣票

2021-10-08 09:27:22 字數 818 閱讀 2449

前置條件:

設定總票數 ,比如20張

開啟多個售票視窗同時進行火車票的售賣 (這裡多個視窗代表 多執行緒. 代表啟動了多少個執行緒物件)

怎麼賣票 ? 借助迴圈 重複賣票動作 ,使用 while死迴圈

每賣出1張 ,總票數 – 操作 .

什麼時候退出迴圈?

發現賣完了,退出迴圈

開啟執行緒 ,執行 run方法內部邏輯

單執行緒賣票 ,是沒問題的 .多執行緒賣票,就出現了併發問題 . 要解決該問題 ,需要使用"同步操作"

synchronized() 括弧內部是 同步鎖物件 .

public

static

void

main

(string[

] args)

public

class

seller

implements

runnable}}

}

總結:方式2:實現 runnable介面 ,重寫run方法

方式1和方式2的區別:方式1已經繼承thread類,不能再繼承別的類 .方式2還可以繼承別的類

方式3:實現 callable介面

需要重寫 call 方法 ,有返回值 . 注意:如果不限定callable 的泛型 ,代表通用資料型別

和方式2區別: 可以拿到返回值 ,但是需要處理異常 . **寫起來麻煩

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

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

Java 多執行緒賣票

在實際應用中,我們經常用到多執行緒,如車站的售票系統,車站的各個售票口相當於各個執行緒。當我們做這個系統的時候可能會想到兩種方式來實現,繼承thread類或實現runnable介面,現在看一下這兩種方式實現的兩種結果。class mythread extends thread public void...

多執行緒賣票案例

火車站有多個售票視窗,這些售票視窗一塊賣100張票,即100張票被多個視窗共享。用執行緒模擬售票視窗 用輸出語句模擬賣出的票。package com.igeek 03 classname ticketdemo description 多執行緒模擬火車站賣票 date 2018年2月4日 下午1 59...