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