当前位置: 首页 > news >正文

讲一下进程间通讯方式?

  1. 无名管道(PIPE):管道是一种半双工的通信方式(数据只能单向流动),而且只能在具有亲缘关系的进程(即只能在父子进程和兄弟进程之间通讯)间使用。进程的亲缘关系通常是指父子进程关系

  2. 命名管道(FIFO):有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

  3. 信号(signal)信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身.

  4. 信号量(semaphore)信号量是个计数器记录临界资源的个数,用于多进程对共享数据的访问。进程访问临界资源时控制,用来实现进程的同步控制。

  5. 消息队列MessageQueue:消息队列是消息的链接表,存放在内核中并有消息队列标识符标识。。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

  6. 共享内存SharedMemory:共享内存允许两个或多个进程共享一定的存储区,因为数据不需要在进程之间复制,所以他是最快的IPC。

信号量底层是怎么实现的?

信号和信号量有什么区别?

信号:是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常
信号量:信号量是一个特殊的变量,它的本质是计数器,信号量里面记录了临界资源的数目,有多少数目,信号量的值就为多少,进程对其访问都是原子操作(pv操作,p:占用资源,v:释放资源)。它的作用就是,调协进程对共享资源的访问,让一个临界区同一时间只有一个进程在访问它。

所以它们两的区别也就显而易见了,信号是通知进程产生了某个事件,信号量是用来同步进程的(用来调协进程对共享资源的访问的)

相关文章:

  • Docker的文件系统
  • 信号和信号量有什么区别?
  • 进程的调度算法有哪些?
  • ORA-00604 ORA-14452 ORA-20783
  • 线程同步的四种方式
  • 2015年小结
  • [<死锁专题>]
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 你知道那些常用的设计模式?
  • 百度地图2.0瓦片地址获取(窗口内瓦片)
  • 设计模式的六大原则?
  • 小知识点
  • 如何做“足够好”的软件
  • 如何理解设计模式的六大原则?
  • 设计模式的分类
  • 4个实用的微服务测试策略
  • C学习-枚举(九)
  • ES6系列(二)变量的解构赋值
  • If…else
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JS字符串转数字方法总结
  • LeetCode29.两数相除 JavaScript
  • python_bomb----数据类型总结
  • Python利用正则抓取网页内容保存到本地
  • Wamp集成环境 添加PHP的新版本
  • 力扣(LeetCode)56
  • 面试总结JavaScript篇
  • 我有几个粽子,和一个故事
  • 小程序button引导用户授权
  • 小程序测试方案初探
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​ArcGIS Pro 如何批量删除字段
  • #include
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (12)Linux 常见的三种进程状态
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (十八)SpringBoot之发送QQ邮件
  • (一)SpringBoot3---尚硅谷总结
  • (转)linux 命令大全
  • (转)memcache、redis缓存
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net反混淆脱壳工具de4dot的使用
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Import注解详解
  • [1127]图形打印 sdutOJ
  • [ACM] hdu 1201 18岁生日
  • [Android学习笔记]ScrollView的使用
  • [C和指针].(美)Kenneth.A.Reek(ED2000.COM)pdf
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [HJ73 计算日期到天数转换]