经典PV操作和尚打水问题

和尚取水问题

寺庙里有许多老和尚和小和尚,一口水井和一个水缸。小和尚负责打水满足老和尚的饮水需求。水缸容积10桶水,水井每次只容一个桶取水,桶总数3个,水缸每次仅容一个桶取、入水。
设水缸初始状态是空的,试设置信号量并利用P、V操作实现和尚间的同步。

信号量定义

	v1=1 小和尚从井里提水
	v2=1 老和尚从缸里取水,小和尚往缸里倒水
	amount=3 水桶数量
	full=0 水缸里有几桶水
	empty=10 水缸里还能放几桶水

PV操作流程

	小和尚(){
		p(empty)
		p(amount)
		p(v1)
		从水井打水
		v(v1)
		p(v2)
		往缸里倒水
		v(v2)
		v(amount)
		v(full)
	}
	
	老和尚(){
		p(full)
		p(amount)
		p(v2)
		从缸中取水
		v(v2)
		v(amount)
		v(empty)
	}

PS:学生小白刚开始学,有什么问题希望大家能提出来。

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Strawberry.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值