4种进程间通信方式详解

4种进程间通信方式详解进程间通信有 4 种方式 以下从简单到复杂的方式出场 1 管道 pipe nbsp nbsp 管道是一种具有两个端点的通信通道 一个管道实际上就是只存在在内存中的文件 对这个文件操作需要两个已经打开文件进行 他们代表管道的两端 也叫两个句槟 管道是一种特殊的文件 不属于一种文件系统 而是一种独立的文件系统 有自己的数据结构 根据管道的使用范围划分为无名管道和命名管道 无名管道用于父进程和子进程之间 通

     进程间通信有4种方式,以下从简单到复杂的方式出场:

1.管道(pipe)
    管道是一种具有两个端点的通信通道,一个管道实际上就是只存在在内存中的文件,对这个文件操作需要两个已经打开文件进行,他们代表管道的两端,也叫两个句槟,管道是一种特殊的文件,不属于一种文件系统,而是一种独立的文件系统,有自己的数据结构,根据管道的使用范围划分为无名管道和命名管道。
无名管道用于父进程和子进程之间,通常父进程创建管道,然后由通信的子进程继承父进程的读端点句柄和写端点句柄,或者父进程有读写句柄的子进程,这些子进程可以使用管道直接通信,不需要通过父进程。
命名管道,命名管道是为了解决无名管道只能在父子进程间通信而设计的,命名管道是建立在实际的磁盘介质或文件系统(而不是只存在内存中),任何进程可以通过文件名或路径建立与该文件的联系,命名换到需要一种FIFO文件(有先进先出的原则),虽然FIFO文件的inode节点在磁盘上,但仅是一个节点而已,文件的数据还是存在于内存缓冲页面中,和普通管道相同。
2.信号
    信号,用于接受某种事件发生,除了用于进程间通信之外,进程还可以发送信号给进程本身。除了系统内核和root之外,只有具备相同id的进程才可以信号进行通信。
3.消息队列
    消息队列是消息的链表,包括Posix消息队列和system v消息队列(Posix常用于线程,system常用于进程),有权限的进程可以向消息队列中添加消息,有读权限的进程可以读走消息队列的消息。
消息队列克服了信号承载信息量少,管道只能承载无格式字节流及缓冲区大小受限等缺陷。
4.共享内存
    共享内存使多个进程可以访问同一块内存空间,是最快的IPC形式,是针对其他通信方式运行效率低而设计的,往往与其他进程结合使用,如与信号量结合,来达到进程间的同步与互斥。传递文件最好用共享内存的方式。 










版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218152.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:55
下一篇 2026年3月18日 上午7:55


相关推荐

  • springboot框架详解_springboot加载spring框架

    springboot框架详解_springboot加载spring框架一图胜千言:springboot容器启动流程:其中最重要的:运行机制为:springboot事件驱动:详情见:springboot事件驱动与观察者模式(http://www.cnblogs.com/dennyzhangdd/p/8343229.html)springboot启动流程图:分层图:…

    2022年8月21日
    9
  • 调用接口返回中文乱码_java请求接口返回乱码

    调用接口返回中文乱码_java请求接口返回乱码最近调用Webservice接口时,遇到接收乱码的问题最开始用soapUI测试看XML结果是正常的,返回结果大概是这样(只截取了json部分结果){“state”:0,”message”:”流程启动成功”,”seqno”:”202005020009″}后来在JAVA后台使用HttpURLConnection调用(全部代码在后面),发现返回来的中文部分全部乱码,如下{“state…

    2022年8月31日
    6
  • 修复weblogic的JAVA反序列化漏洞的多种方法

    修复weblogic的JAVA反序列化漏洞的多种方法

    2022年3月13日
    37
  • new Set数组去重

    new Set数组去重利用该方法去重 script letarr 1 1 3 3 4 4 5 console log newSet arr 打印数组 1 3 4 5 script

    2025年10月2日
    7
  • Web渗透测试工具[通俗易懂]

    Web渗透测试工具[通俗易懂]一、介绍是用于攻击web应用程序的集成平台。它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。它主要用来做安全性渗透测试。二、下载安装 2.1地址 链接:https://pan.baidu.com/s/1xhQ…

    2022年8月12日
    10
  • ubuntu16安装中文输入法「建议收藏」

    ubuntu16安装中文输入法「建议收藏」参考自:https://jingyan.baidu.com/article/bad08e1ef4b2f109c85121b7.html原材料:ubuntu16步骤:1.在桌面的最左边选择设置(SystemSettings)2.在设置中选择LanguageSupport3.在弹出的窗口选择Install/RemoveLanguages…4.选择Ch…

    2026年4月13日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号