【自我笔记之Linux】进程间通讯之信号量、消息队列

一、信号量

1、概念:当多个进程需要协同合作时,需要根据某个信号,判断当前进程是否需要停下来等待;同时,其他进程需要根据这个信息判断是否有进程在等待,或者有几个进程在等待,以决定是否需要唤醒等待的进程。而这个信息,就是信号量。

进程同步控制(类似计数器,>0 临界资源的个数   ==0  没有临界资源可用,申请资源进程执行P操作,则进程会被阻塞)

进程同步:进程协同工作

进程异步:进程独立运行,互不干扰,需要内核机制来做通知   ---->  信号

临界资源:同一时刻只能被一个进程访问使用的资源   临界资源可以有多份

临界区:访问临界资源的代码区域

原子操作:不能被终止,不能被暂停  一旦开始操作 必须等待他结束

P操作   -1   V操作    +1

信号量的内核对象  维护的是信号量集  信号量的数组 

2、信号  &   信号量:

信号:完成进程间消息通知

信号量:完成进程间同步控制,用于多进程访问同一临界资源

 

二、消息队列

1、消息队列(先进先出):在同一类型上符合先进先出的规定,对于整个消息队列  类优先级队列

2、特点:是消息的链表。具有特定的格式,存放在内存中,由消息队列标识符标识

  消息队列允许一个或多个进程向他写入与读取消息

  消息队列可实现消息的随机查询,不一定以先进先出的顺序读取,也可以按照类型进行读取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值