leaf_8 2015-06-06 08:01 采纳率: 0%
浏览 2479

线程同步经典问题,和尚挑水问题

某寺庙有小和尚、老和尚若干。庙内有一水缸、由小和尚提水入缸,供老和尚饮用。水缸可容纳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

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况