教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

操作系统课程设计--用多线程同步方法解决睡眠理发师问题(Sleepin(3)

来源:网络收集 时间:2026-05-25
导读: void * barber() { int i; int next; //wait(customers),if no customers,barber sleeping sem_wait( sem_wait( //wait(mutex) waiting--; //the numer of waiting reduce one for(i=0;i if (chair[i]!=0) { next=

void * barber() {

int i; int next;

//wait(customers),if no customers,barber sleeping sem_wait(&customers);

sem_wait(&mutex); //wait(mutex)

waiting--; //the numer of waiting reduce one for(i=0;i<5;i++) {

if (chair[i]!=0) {

next= chair[i]; chair[i]=0; break; } }

printf(\ sleep(3); sem_post(&mutex); sem_post(&barbers); }

//creat customer pthread void * customer(void *arg) {

int i;

sem_wait(&mutex); //wait(mutex) if(waiting

if(waiting

waiting++; //the numer of waiting plus one for(i=0;i<5;i++) {

if (chair[i]==0) {

chair[i]=(int)arg; break; } }

printf(\ printf(\%d customer comes,and sits at %d \\n\

printf(\ printf(\ for(i=0;i<5;i++)

printf(\ printf(\

sleep(1);

sem_post(&mutex); //signal(mutex)

sem_post(&customers); //signal(customers) sem_wait(&barbers); //wait(barbers) } else

chair {

printf(\%d comes,there are no chairs,the customer %d is leaving\\n\ sem_post(&mutex); } }

5.2.1 编辑,编译和运行的过程图

\\

5.2.2 错误部分截图

5.2.3 正确运行结果图

第一次运行结果如下图:

第二次运行结果如下图:

操作系统课程设计--用多线程同步方法解决睡眠理发师问题(Sleepin(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/435337.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)