嗜睡的理发师问题
来源:互联网 发布:程序员的浏览器 编辑:程序博客网 时间:2024/04/29 02:09
var count:integer:=0;
mutex,sofa,empty,full:=semaphore:=1,N,1,0;
cut,payment,receipt:semaphore:=0,0,0;
begin
parbegin
guest:begin
wait(mutex);
if(count>N) then
begin
signal(mutex);
离开理发店;
end
else
begin
count:=count+1;
if(count>1) then
begin
wait(sofa);
在沙发上就座;
wait(empty);
从沙发上起来;
signal(sofa);
end
else
wait(empty);
在理发椅上就座;
signal(full);
理发;
付费:
signal(payment);
wait(receipt);
从理发椅上起来;
signal(empty);
wait(mutex);
count:=count-1;
signal(mutex);
离开理发店:
end
end
barber:begin
repeat
wait(full);
替顾客理发:
wait(payment);
收费;
signal(recipt);
until false
end
parend
end
- 嗜睡的理发师问题
- 用C#模拟“嗜睡的理发师”问题
- 理发师问题的实现
- 理发师问题
- 理发师问题
- 理发师问题
- 理发师问题
- 理发师问题
- 理发师问题
- 我对理发师问题独到的理解
- 进程同步的经典问题3——理发师问题
- 操作系统(三)同步进程问题--理发师的睡觉问题
- 睡眠理发师问题
- 睡眠理发师问题
- 睡眠理发师问题
- 信号量实现理发师问题
- 加强版理发师问题
- 理发师睡眠问题
- 进程与线程的一个简单解释
- 手机上能不跳转就不跳转
- 《C专家编程》笔记(一)
- C#中结构体实现接口后是值类型还是引用类型
- Apkudo免费为Android开发者提供测试
- 嗜睡的理发师问题
- 二分查找
- 社团的那些事(10)
- 关于bind
- 二进制原码、反码、补码
- Android TableLayout数据列表的回显清空
- 3.4 迭代器简介
- Android中全屏或者取消标题栏
- 关于静态变量和静态函数