1.管道

在内核内存中维护一个缓冲器,这个缓冲器的存储能力有限的,可以读写操作,有名管道(FIFO)有文件实体,匿名管道(PIPE)没有文件实体。匿名管道只能用于具有公共祖先的进程。半双工,一端用于写入,一端用于读取。(同一个时间只能往同一个方向,方向是可以双向的)

2.信号

简介:是事件发生时的通知机制,有时也可以称之为软件中断,是一种异步通信的方式。

目的:

1.让进程知道已经发生了一个特定的事情

2.强迫进程执行自己代码中的信号处理程序

特点:

1.简单2.不能携带大量信息3.满足某个特定的条件发送4.优先级高

3.信号量

主要用于进程间以及同一进程不同线程之间的同步手段

特点

1.本质是一个计数器,内存中有多少个临界资源,信号量的数字就是多少

2.信号量基于操作系统的pv操作,程序对信号量的操作都是原子操作

3.信号量用于进程间同步,如果要进程间传递数据需要结合共享内存

4.共享内存

共享内存是效率最高的通信方式,允许两个或者多个进程共享物理内存的同一块区域.由于一个共享内存段会成为一个进程用户空间的一部分,所以这种机制无需内核介入

5.消息队列

提供了一种在两个不相关的进程之间传递数据的简单高效的方法。消息发送后可以立刻返回,有消息系统来确保信息的可靠传递,消息发布者只管把消息发布到消息队列中而不管谁来取走,消息使用者只管从消息队列中去消息而不管谁发布的。

解耦:只要保证消息格式不变,发送发和接收方可以不受对方的影响

异步:非核心流程异步化,提高系统响应性能。

削峰:限制用户数量,将接受的用户请求写入消息队列中,然后消息队列长度超过最大数量,直接抛弃用户请求或跳转到错误节目

6.Socket通信

网络中不同主机上的应用进程之间双向通信的端口的抽象。Linux下本质为内核借助缓冲区形成的伪文件。可以用文件描述符来引用套接字。

进程间通信的方式及其特点相关推荐

  1. 一种网络进程间通信的方式—— 管道

    一种网络进程间通信的方式-- 管道 摘要: 文章主要介绍了计算机网络进程间通信的必要性以及进程间通信所采用的几种方式,重点说明了管道通信的原理及命名管道的实现方法. 关键词:管道 命名管道 进程 一. ...

  2. linux实现单机qq_Linux后台服务器开发——Linux下进程间通信的方式有哪些?

    Linux下进程间通信的方式有: 管道 消息队列 信号 信号量 共享存储 套接字 一.管道 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道 PIPE无名管道 详情参阅:ht ...

  3. C | 进程间通信的方式

    C | 进程间通信的方式 1.无名管道 无名管道是实现亲缘间进程通信的一种方式,属于半双工通信. 无名管道的实现是队列,不能使用lseek对读写指针偏移. 无名管道有两个端:数据流入端和数据流出端,也 ...

  4. 进程间通信的方式及原理

    # 进程间通信的方式 文章目录 # 进程间通信的方式 消息队列 使用步骤 管道 消息队列 信号 信号量 socket 消息队列 首先消息队列就是内核维护的一块链表区域,只要是有足够权限的进程都可以向队 ...

  5. 进程间通信的方式——信号、管道、消息队列、共享内存

    进程间通信的方式--信号.管道.消息队列.共享内存 多进程: 首先,先来讲一下fork之后,发生了什么事情. 由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回 ...

  6. 进程间通信的方式(附代码分析)

    进程间通信的方式 1. 进程间通信的几种方式 管道 比如 ls | grep 1;也就是将 进程 ls 拿到的结果作为 grep 1 这个进程的输入.实现了进程间的通信. 消息队列 消息队列就是我们的 ...

  7. 进程和线程的区别 及 进程间通信的方式

    1.进程和线程的区别 (1)进程和线程对比:         进程是对运行时程序的封装,是系统资源调度和分配的基本单位,进程可以看做是操作系统的并行机制.         线程是进程的子任务,cpu ...

  8. Linux多线程间通信和多进程间通信的方式

    文章目录 一.进程间的通信方式 1. 进程间通信的概念 1.1. 进程通信的目的: 1.2. Linux 进程间通信(IPC)的发展 2. 进程间通信的7种方式 2.1. 管道/匿名管道(pipe) ...

  9. 进程间通信的方式(四):信号量

    信号量(semaphore)是一种用于提供不同进程之间或者一个给定的不同线程间同步手段的原语.信号量多用于进程间的同步与互斥,简单的说一下同步和互斥的意思: 同步:处理竞争就是同步,安排进程执行的先后 ...

  10. 进程间通信的方式总结

    进程间通信就是在不同进程之间传播或交换信息. 进程间通信的目的如下: ①数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间. ②共享数据:多个进程想要操作共享数据, ...

最新文章

  1. 浅入浅出 Android 安全:第三章 Android 本地用户空间层安全
  2. Office 2007无法修复、卸载、重装
  3. python3 deque(双向队列)
  4. SpringBoot入门(1)——创建springBoot项目
  5. 轻松自动化---selenium-webdriver(python) (十二)
  6. 使用Spring3+Quartz实现定时任务
  7. mysql union order by_MySQL order by 在 union 中使用实例分析
  8. 信息学奥赛一本通 1150:求正整数2和n之间的完全数
  9. 理论基础 —— 查找 —— 斐波那契查找
  10. 怎样使用计算机上的高级共享设置,win7打印机共享怎么设置
  11. C# 开发 OPC Server 系列之二
  12. 基于JavaWEB的学生考勤管理系统
  13. 5773. 插入后的最大值
  14. Tomcat做成系统服务
  15. 64位处理器_为什么苹果A处理器领先安卓2年?从什么时候开始领先的?有何依据...
  16. Hoo Smart Chain 万物生长计划火热报名中,可视化公链迸发勃勃生机
  17. 【读书】2019年阅读记录
  18. 分享几个PPT模板免费下载的网站
  19. 数码摄影入门:焦距是什么?
  20. 使用图灵机器人实现微信消息的智能回复

热门文章

  1. LeetCode刷题指南——题目精选1
  2. Typecho博客主题thug响应式主题的下载
  3. 人工智能-模糊计算(二)
  4. 交换友情链接升级2.0版本
  5. 学习HM微博项目第9天
  6. 计算机在职考研 知乎,在职考研几个基本常识介绍
  7. Route map介绍(转贴)
  8. django html中文乱码,django中文乱码及中文报错问题
  9. js-DOM高级操作应用之搜索3(模糊搜索)
  10. Error running JeecgSystemApplication. Command line is too long.Shorten the command line via JAR m