早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一个盘子一次只能放一个水果,A中只能往盘子里放一个苹果,B只能往盘子里放一个梨子,C只从盘子里取出苹

题目详情
一个盘子一次只能放一个水果,A中只能往盘子里放一个苹果,B只能往盘子里放一个梨子,C只从盘子里取出苹
▼优质解答
答案和解析
semaphore s;//设置一个信号量s,s的格式为s[r] //s[r]=0,0为盘子为空,且AB都没有过操作 //s[r]=A,1则盘子中A前一次放入过苹果,s[r]=B,1 //则盘子中前一次B放入过犁,s[r]=A,0则表示盘子为空,可以放入 //犁,s[r]=B,0则表示盘子为空,可以放入苹果 //当一个进程执行完后,在后面的3个周期里不得再执行本进程 Process A begin if(s[r]==0,0||s[r]==B,0)//当判断盘子为空或者可以放入苹 //果 P(s); 放入苹果; V(s);//s[r]=A,1 end Porcess B begin if(s[r]==A,0) P(s); 放入犁; V(s);//s[r]=B,1 end Porcess C begin if(s[r]==A,1) P(s); 取出苹果; V(s);//s[r]=A,0 end Porcess C begin if(s[r]==B,1) P(s); 取出犁; V(s);//s[r]=B,0 end
看了 一个盘子一次只能放一个水果,...的网友还看了以下: