有关PV操作和进程的同步与互斥的题目形象举例思路分享

本文通过实例解析了S锁、S1锁和S2锁的机制,展示了如何使用P操作(消耗钥匙)和V操作(制造钥匙)来控制资源的访问,确保资源的互斥和同步,帮助读者理解PV操作在并发控制中的作用。
摘要由CSDN通过智能技术生成

1题目:

image-20230929004408758

2思路:

可以把S,S1,S2的值当成三种不同的锁当前一次性钥匙的数量(箱子和钥匙都是公用,谁先抢到归谁)。

谁想用箱子就必须开S锁,每放一个货之前都必须要开S1锁,每取一个货之前都必须要开S2锁。

P操作相当于耗一把对应型号的一次性钥匙开锁,V操作相当于造一把对应型号的一次性钥匙,当某种型号的锁的钥匙数为0,再想开这种锁(P)就只能干等,直到有人造了(V)一把这种钥匙。

如图中一样,所有耗钥匙和造钥匙的权限都被定死了,做某件事前后必须要执行某种操作。

3分析:

S锁钥匙初始时数量=1:能保证这个箱子只能有一个人在用,因为谁想用箱子前就要耗(P)一把S的一次性钥匙开S锁,然后就没S钥匙了,别人开不了了,想开(P)S锁,就要等用的人用完后造出(V)一把S锁放回来。

S1锁钥匙初始时数量=n:能保证不会出现箱子满了甲还能放,因为甲每放一个货到箱子之前都会耗(P)1把S1锁的钥匙开箱子,只有乙每拿走1个货乙才会造(V)1把S1钥匙出来,如果S1钥匙没了,甲的货就放不进箱子。

S2锁钥匙初始时数量=0:能保证不会出现箱子空了乙还能取,因为乙每次想从箱子里取一个货之前都要耗(P)一把S2钥匙开箱子,刚开始S2钥匙数量为0,乙是取不了的,只有每次甲放一个货到箱子里时,甲才会造(V)一把S2钥匙,乙才能取。

4总结:

问题的本质其实就是资源的争抢问题,通过PV操作实现资源的互斥和同步访问。之前一直不理解P操作和V操作真实含义,通过该例子加深了对这方面的理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值