火車售票系統

2021-10-10 11:49:52 字數 1224 閱讀 5072

//有缺陷的售票系統

#include

#include

#include

#include

#include

#include

//#pragma comment(lib, "pthreadvc2.lib")

int tickt =

100;

void

*route

(void

* arg)

else

}return

null;}

intmain

(void

)

ps:join會阻塞呼叫的執行緒,直到thread指定的執行緒結束(序列,類似函式呼叫) 可用於得到指定執行緒結束資訊(狀態),對其他執行緒不產生影響,除非你將建立和join放在一起,增加關聯性,使得cpu無法並行處理。

if語句判讀為真以後,**可以併發的切換(甚至並行)其他執行緒

sleep 這個模擬漫長的業務過程中,可能有多個執行緒會進入該臨界資源

–ticket操作本身不是乙個原子操作(需要3條指令完成);

load:將共享變數ticket從記憶體載入到暫存器

update:更新暫存器裡面的值,執行-1操作。

store:將暫存器裡的新值,從暫存器寫回共享變數ticket的記憶體位址。

解決:**必須要有互盡行為:當**進入臨界區執行時,不允許其他執行緒進入該臨界區。

如果多個執行緒同時要求執行臨界區的**,並且臨界區沒有執行緒在執行,那麼只能允許乙個執行緒進入該臨界區。

如果執行緒不在臨界區中執行,那麼該執行緒不能阻止其他執行緒進入臨界區。

//互斥量實現的售票系統

#include

#include

#include

#include

#include

#include

//#include

//#pragma comment(lib, "pthreadvc2.lib")

int tickt =

100;

pthread_mutex_t mutex;

void

*route

(void

* arg)

else

}return

null;}

intmain

(void

)

火車票售票系統

資料庫售票系統 toc 一 e r圖 二 建立表結構 1 建立 售票點 表,表名為sale 表結構為 2 建立 車票表 表名為ticket 表結構為 3 建立 車次 表,表名為train 表結構為 4 建立 表 表名為st 表結構為 三 事務控制 1 查詢系統 查詢車次為t3025的列車的詳細資訊 ...

C 實現火車售票

編寫程式實現火車站售票程式 以一節車廂為例 下圖是火車車廂內座位的布局,座位號從1到80 售票規則總則 1.假設每次最多售4張 2.售1張票原則 隨便售出一張沒有售出的票 3.售2張票原則 優先售2張相鄰的票 如果沒有2張相鄰的票就隨便售出兩張票 所謂2張相鄰包括 1和2 3和4 5和6 7和8等等...

多執行緒模擬火車站售票

生活中其實有很多多執行緒的例子,比如火車站售票就是乙個例子。我們先來分析一下,1 首先要有火車票的總數量,並且每賣出一張火車票,總量就減一 2 當火車票的數量小於1的時候,就停止售票 3 使用多執行緒模擬各個視窗進行售票 4 當火車票售完後,火車站也同樣歡迎我們 下來,我們 來實現火車站售票例項 p...