进程间通信(4) 信号量

本文介绍了信号量作为进程间通信的一种方式,主要用于保护共享资源和实现同步与互斥。详细阐述了信号量的工作机制,包括P、V原语,以及如何使用信号量进行进程间的通信。通过示例代码展示了信号量在解决临界资源问题上的应用,强调了P、V操作的原子性对于避免资源竞争的重要性。
摘要由CSDN通过智能技术生成

之前我们学习了管道,消息队列,共享内存,今天我们再来学一种进程间通信的方式-----信号量

信号量

    信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。

在了解信号量之前,我们先来看几个概念

临界资源:两个进程看到的同一个公共的资源,但是同时只能被一个进程所使用的的资源叫做临界资源(互斥资源)

临界区:在晋城中涉及到互斥资源的程序段叫临界区

信号量主要用于同步和互斥,下面我们来看看什么是同步和互斥。

互斥:各个进程都要访问共享资源,但共享资源是互斥的,同时只能有一个进程使用。因此,各个进程之间竞争使用这些资源,将这种关系称为互斥。

同步:多个进程需要相互配合共同完成一项任务。

信号量的工作机制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值