资源简介
阅览室里有20个座位,外面有10个等待位,若读者来时发现等待位已满则离去。用C语言多线程实现,用信号量实现同步互斥
代码片段和文件信息
#include
#include
#include
#include
#include
#define READING 0;
#define WAITING 1;
int readerNum=0;
int waitNum=0;
sem_t synchronize;
sem_t seat;
sem_t room;
void *waitingroom() {
while(1) {
sem_wait(&synchronize);
sem_wait(&seat);
waitNum=waitNum+1;
printf(“There are %d readers reading. \n“ readerNum);
printf(“There are %d readers waiting. \n“ waitNum);
}
}
void *come() {
while(1) {
printf(“---------------------------------\n“);
printf(“A new reader comes. \n“);
if(readerNum>=20&&waitNum>=10) {
printf(“The reader left. \n“);
}else if(readerNum>=20) {
printf(“A new reader is waiting. \n“);
sem_post(&synchronize);
sem_wait(&room);
}else {
readerNum=readerNum+1;
printf(“There are %d readers reading. \n“ readerNum);
printf(“There are %d readers waiting. \n“ waitNum);
}
sleep(1);
}
}
int main() {
int res;
pthread_t thread;
- 上一篇:mfc的odbc数据库连接方法
- 下一篇:国密SM2算法C代码
相关资源
- c++ c 数据结构 课程设计 学生成绩管理
- C语言编写的高精度求积分函数
- 使用c语言实现图像二值化
- c语言实现的自动贩卖机程序
- 人事管理系统C语言课程设计报告
- C语言 马踏棋盘 完整代码及实验报告
- C语言 图书馆借阅管理系统 完整代码
- UDP协议客户端服务器间视频传输c源码
- 基于51单片机的c语言编写的计算器程
- 简单时间获取,用c语言编写,客户端
- C语言课程设计 - 学生宿舍管理系统
- C语言大作业 西北工业大学
- 3DES,C语言版,ECB,PKCS7
- 利用LINUX FIFO命名管道技术实现双向聊
- C语言学生宿舍管理程序源代码
- kcf目标跟踪C代码
- 围棋C语言代码要满十字
- 逆波兰表达式 c语言实现
- 指法练习 C语言源代码
- 人工智能 八数码问题 A*算法 C语言
- 全国交通咨询模拟c语言版214055
- 基于C语言STC89C52单片机电子密码锁的
- C语言实现 简单的端口扫描
- C语言课程设计——超市商品库存管理
- RSA算法1024位C语言实现
- 一个基于单片机的温湿度程序
- 由c语言文件制作成mex文件的方法
- C语言连接mysql,实现通讯录功能
- 数据结构C语言版综合实践集合运算
- 简易工资管理系统C语言实现
评论
共有 条评论