用多線程同步方法解決讀者閱覽問題
1) 每個讀者進入閱覽室后,即時顯示“Entered” 及其線程自定義標識,還同時顯示閱覽室共有幾名顧客及其所坐的位置。
2) 至少有10個讀者,每人閱覽至少3秒鐘。
3) 多個讀者須共享操作函數(shù)代碼。
2總的設(shè)計思想及系統(tǒng)平臺、語言、工具:
設(shè)計思想:程序設(shè)定的是10個讀者和5個座位,對讀者進行編號,依次進入閱覽室讀書,為每一座位列一表目,包括座號和讀者號等,讀者離開時要登出,即消掉登記的信息。
系統(tǒng)平臺:LINUX 語言:C語言 工具:vi編輯器、gcc編譯器
操作系統(tǒng):linux操作系統(tǒng)
調(diào)試工具:edit、masm、link、debug.
3數(shù)據(jù)結(jié)構(gòu)與模塊說明(功能與流程圖)
數(shù)據(jù)結(jié)構(gòu)
int count=0 //記錄閱覽室讀者數(shù)量
sem_t full //定義閱覽室座位信號量
int seat[5] //用數(shù)組表示座位
pthread_t reader[10] //定義讀者線程
pthread_mutex_t mutex //定義互斥量
3.2功能說明
可以標識讀者,隨機為讀者設(shè)置在閱覽室的讀書時間
可以顯示閱覽室讀者的人數(shù)
可以顯示讀者所坐的位置,座位狀態(tài)以及列出空座位
標簽:
多線程同步
上傳時間:
2016-08-10
上傳用戶:zsjzc