用多线程同步方法解决读者阅览问题
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