资源简介
一个理发店由一个有几张椅子的等待室和一个放有一张理发椅的理发室组成。1. 若没有要理发的顾客,则理发师去睡觉;2. 若一顾客进入理发店,理发师正在为别人理发,且等待室有空椅子,则该顾客就找张椅子按顺序坐下;3. 若一顾客进入理发店,理发师在睡觉,则叫醒理发师为该顾客理发;4. 若一顾客进入理发店且所有椅子都被占用了,则该顾客就离开。
代码片段和文件信息
//2007-12-23 10:46:11
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX_CHAIR_NO 50
#define MAX_CUSTOM_NO 10
#define MAX_BARBER_NO 8
int chair_no=5;
time_t end_time; /**//*end time*/
sem_t mutexcustomersbarbers;
int count = 0;//等待理发的顾客数
void barber(void* arg);
void customer(void* arg);
int main(int argc char *argv[])
{
int i=0;
int custom_no=1;
int barber_no=1;
int interval=20;
pthread_t barber_id[MAX_BARBER_NO];
pthread_t custom_id[MAX_CUSTOM_NO];
int ret = 0;
if(argc==1){
}else if(argc==2){
if(strcmp(argv[1]“-h“)||(strcmp(argv[1]“-H“))){
printf(“usage: param: barber_no cust_no interval chair_no\n“);
exit(0);
}
custom_no=atoi(argv[1]);
}else if(argc==3){
barber_no=atoi(argv[1]);
custom_no=atoi(argv[2]);
}else if(argc==4){
barber_no=atoi(argv[1]);
custom_no=atoi(argv[2]);
interval=atoi(argv[3]);
}else if(argc==5){
barber_no=atoi(argv[1]);
custom_no=atoi(argv[2]);
interval=atoi(argv[3]);
chair_no=atoi(argv[4]);
}
if(barber_no>MAX_BARBER_NO) barber_no=MAX_BARBER_NO;
if(custom_no>MAX_CUSTOM_NO) custom_no=MAX_CUSTOM_NO;
if(chair_no>MAX_CHAIR_NO) chair_no=MAX_CHAIR_NO;
printf(“barber no: %d customer no: %d interval(s) %d chair no: %d\n“
barber_nocustom_nointervalchair_no);
end_time = time(NULL)+interval;
- 上一篇:《操作系统概念》第七版1-13章答案含代码
- 下一篇:DNS中继服务器的实现
相关资源
- uboot到linux logo显示不间断 补丁
- UNIX/LINUX编程实践教程的源码
- Linux任务管理器
- linux应用层的华容道游戏源代码
- 编写简单的RMI程序 多线程web 服务器
- ubuntu9.10 可加载内核模块和字符设备驱
- MP3文件ID3v2ID3v2APEv2标签读取
- 操作系统实验——虚存管理实验
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
- linux下用多进程同步方法解决生产者
- 多线程生产者消费者模式
- Linux 操作系统实验(全)
- Linux From Scratch 中文手册
- linux 网络实验 ftp程序
- Linux命令大全离线版&在线版
- 操作系统共享内存实验
- dos 下运行Linux 命令--gnu_utils
- linux 0.12内核源代码
- linux简易shell C实现
- linux实验报告及心得体会
- 基于GTK的Linux环境下的简易任务管理器
- linux扫雷游戏代码
- CAN Linux驱动代码
- 多线程实例:桌面智能弹球小游戏
- Linux系统教材
- WPF多线程演示
评论
共有 条评论