[进程同步]—生产者与消费者问题

生产者与消费者问题

  • PV操作是用来操作信号量的。

    • P:等待——wait——减法作用——阻塞作用

    • V:释放——signal——加法作用——唤醒作用

    • S.value > 0 :有空闲CPU;

      S.value = 0:CPU刚好用完;

      S.value < 0:进程等待;

      • P操作

      void wait(S)
      {
          S.value--;
          if (S.value < 0)
          {
              加入阻塞队列;
          }
      }
      • V操作

      void signal(S)
      {
          S.value++;
          if (S.value <= 0)
          {
              唤醒阻塞队列第一个进程;
          }
      }
  • 解题思路:

    1.画图理解题目
    2.判断题目类型
    3.分析进程数目,填写进程模板
    4.补充基本代码
    5.补充P,V代码
    6.调整代码
  • 例:爸爸往桌子上每次放一个苹果,儿子每次从桌子上拿一个苹果,放苹果和拿苹果不能同时进行,桌子上最多放10个苹果,用PV操作实现同步互斥。

    • 分析&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值