某寺庙有小和尚、老和尚若干。庙内有一水缸、由小和尚提水入缸,供老和尚饮用。水缸可容纳10桶水,每次入水、取水都为1桶,且不可同时进行。水取自同一井中,水井口很小,每次只能容纳一只水桶取水。设水桶个数为3个。试写出小和尚和老和尚的函数,假设有5个小和尚提水入缸,5个老和尚取水喝(每隔一定时间取水一次),分别用不同的线程模拟小和尚和老和尚,使他们能同步进行。(每个和尚一个线程)
5条回答 默认 最新
- sinat_28802461 2015-06-06 08:05关注
Var mutex1, mutex2, empty, full, count: semaphore;
mutex1:=1; mutex2:=1;
empty:=10; full:=0; count:=3;process 小和尚:
begin
repeat
wait(empty);
wait(count);
wait(mutex1);
从井中取水;
signal(mutex1);
wait(mutex2);
送水入水缸;
signal(mutex2);
signal(count);
signal(full);
until false;
end
process 老和尚:
begin
repeat
wait(full);
wait(count);
wait(mutex2);
从缸中取水;
signal(mutex2);
signal(empty);
signal(count);
until false;
end解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题