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. 2015_8_21作业——有自翻译有复制他人的英语太差
  2. flex 单独一行_Flex布局从了解到使用只需5min
  3. springboot + shiro 验证码与记住登录
  4. css3选项卡样式,css3选项卡标题样式设计1
  5. 深入JVM——OOM异常解析
  6. Windows与Linux下tftp服务的使用
  7. c++ 将文件内容输出到word上_原来PDF转Word可以这么简单,只需要一个键!办公起来真方便...
  8. struts 结果类型
  9. 学术之路如何走好?过来人的10条建议!
  10. 2018暑假第二周总结(7.16-7.22)
  11. Android Open Source Projects(汇总与整理)
  12. 研究生自然辩证法试题题库及答案
  13. 曾经的移动应用推广八法尚能饭否?再加一法大概就事半功倍!
  14. 分类模型confusion matrix混淆矩阵可视化
  15. 关于共享自习室查询座位空闲状态的算法笔记
  16. Graph Coverage
  17. 复古传奇服务器维护时间,复古传奇手游刷怪时间
  18. 从头开始搞懂 MySQL(07)为什么同一条 SQL 时快时慢
  19. Vivado FPGA基础设计操作流程(1)
  20. [Django1.5] two-scoops-django-best-practices 读书笔记

热门文章

  1. HCIP——IPV4和IPV6共存
  2. 54篇不合格!一批硕士论文抽检结果公布
  3. 学习CAD须知基础知识
  4. 【C++】标准库 std::clamp 使用方法
  5. AI与艺术——图像生成模型是否能挑战人类艺术?
  6. 阿里云hph版本跟mysql安装_实体机下Centos7操作系统的安装,PHP,FTP,mariadb,Apache的安装设置,搭建网站完美实现...
  7. 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long异常的正确
  8. jQuery Jcrop API参数说明
  9. Elasticsearch索引和查询性能调优的21条建议【下】
  10. Elasticsearch性能优化实践