信号量机制实现进程互斥、同步、前驱关系

本文详细介绍了信号量机制如何用于实现进程的互斥、同步以及前驱关系。通过实例分析,阐述了在多线程环境下,如何通过V(S)和P(S)操作确保代码的正确执行顺序,保证了资源的安全访问和线程间的协调。通过对信号量的值进行增减,有效地避免了死锁,并实现了线程间的有效调度。
摘要由CSDN通过智能技术生成

信号量机制实现进程互斥、同步、前驱关系

知识总览图

在这里插入图片描述

信号量机制实现进程互斥

img

信号量机制实现进程同步

题目同步要求:要求线程P2的代码4要执行在线程P1的代码2的后面,如下图:

在这里插入图片描述

分析如下图:

“前操作”指的就是代码2,“后操作”指的就是代码4

在这里插入图片描述

上图中的目的是要实现同步,要让代码4执行在代码2的前面,假如刚开始执行的是线程P1,那么等到代码2执行之后,会执行V(S)操作,这个时候会让S++,S就变成了1,接着执行P2线程的P(S),由于此时S>0,表示有可用的资源,因此P2线程不会阻塞,所以会紧接着执行代码4,因此这种情况下,能保证代码4在代码2的后面执行,也就保证了同步;另外一种情况,加入先执行的是P2进程,这个时候由于S的值是0,因此没有可用的资源,S的值会变成-1,所以会让P2进程阻塞,然后会执行P1进程,等到执行P1进程的V(S)代码的时候,会让S++,这个时候S的值会变成S=0,因此会唤醒阻塞的进程,所以会唤醒P2进程,然后P2进程会执行代码4,这种情况也能保证代码4是在代码2的前面执行的。

信号量机制实现前驱关系

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr-X~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值