上传者: t657094295
|
上传时间: 2021-06-23 19:56:14
|
文件大小: 2KB
|
文件类型: CPP
.用进程实现睡觉的理发师问题。(同步互斥采用信号量)理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。
1.睡觉的理发师问题,我用了椅子作为共享内存的参数,然后设置了MAX=10,
当椅子数目>=10时理发师睡觉,进程sleep(3),
否则理发师剪头发,将椅子数目加1,然后sleep(3);
而每个顾客都是新建一个进程,椅子数目小于等于0的话就离开,结束进程,否则等待,每个顾客进来后都sleep(1),所以就相当于理发师每理1个人的头发,就新进来一个顾客,设置顾客进来40个后结束,太大的话会崩溃。