进程之间的通信的方式有哪些,他们之间的区别是什么!或者是忧缺点 2022-07-14 05:59 561阅读 0赞 linux上面的IPC大多都是从UNIX上面继承而来。 最初Unix IPC包括:管道、FIFO、信号。System V IPC包括:System V消息队列、System V信号灯、System V共享内存区。由于Unix版本的多样性,电子电气工程协会(IEEE)开发了一个独立的Unix标准,这个新的ANSI Unix标准被称为计算机环境的可移植性操作系统界面(PSOIX)。现有大部分Unix和流行版本都是遵循POSIX标准的,而Linux从一开始就遵循POSIX标准。Posix IPC包括: Posix消息队列、Posix信号灯、Posix共享内存区。 所以目前linux上面支持的IPC主要包括四类: 1. UNIX早期IPC:管道、FIFO、信号; 2. system V IPC:System V消息队列、System V信号灯、System V共享内存区; 3. Posix IPC: Posix消息队列、Posix信号灯、Posix共享内存区; 4. 基于socket的IPC; 我们这一系列没有讲述信号灯相关内容,是因为信号灯是进程间以及同一进程不同线程之间的一种同步方式,我们这一系列把精力主要放在进程之间信息的交互上面,而同步与互斥的内容放在另一个系列,这样更便于知识的细化归类,各个击破。其实同步与互斥是进程间通信的一个很重要的内容,所以我们会立即在下一个系列详细讲解同步与互斥的内容。 下面分析一下我们这一系列文章各种IPC的特点: 1. socket a、使用socket通信的方式实现起来简单,可以使用因特网域和UNIX域来实现,使用因特网域可以实现不同主机之间的进出通信。 b、该方式自身携带同步机制,不需要额外的方式来辅助实现同步。 c、随进程持续。 2. 共享内存 a、最快的一种通信方式,多个进程可同时访问同一片内存空间,相对其他方式来说具有更少的数据拷贝,效率较高。 b、需要结合信号灯或其他方式来实现多个进程间同步,自身不具备同步机制。 c、随内核持续,相比于随进程持续生命力更强。 3. 管道 a、较早的一种通信方式,缺点明显:只能用于有亲缘关系进程之间的通信;只支持单向数据流,如果要双向通信需要多创建一个管道来实现。 b、自身具备同步机制。 c、随进程持续。 4. FIFO a、是有名管道,所以支持没有亲缘关系的进程通信。和共享内存类似,提供一个路径名字将各个无亲缘关系的进程关联起来。但是也需要创建两个描述符来实现双向通信。 b、自身具备同步机制。 c、随进程持续。 5. 信号 a、这种通信可携带的信息极少。不适合需要经常携带数据的通信。 b、不具备同步机制,类似于中断,什么时候产生信号,进程是不知道的。 6. 消息队列 a、与共享内存和FIFO类似,使用一个路径名来实现各个无亲缘关系进程之间的通信。消息队列相比于其他方式有很多优点:它提供有格式的字节流,减少了开发人员的工作量;消息具有类型(system V)或优先级(posix)。其他方式都没有这些优点。 b、具备同步机制。 c、随内核持续。
相关 进程之间的通信方式 进程间通信方式一般有以下几种: 1、管道,匿名管道,命名管道 2、信号 3、信号量 4、消息队列 5、共享内存 6、socket 管道 管 朴灿烈づ我的快乐病毒、/ 2022年12月03日 12:59/ 0 赞/ 82 阅读
相关 操作系统 | 进程之间的通信方式 进程之间的通信方式 1.共享存储 在通信的进程之间存在一块可以直接访问的共享空间,通过对共享空间进行写/读操作,实现进程之间的信息交换。 共享存储又分为两种:低级 ╰+攻爆jí腚メ/ 2022年10月29日 07:52/ 0 赞/ 161 阅读
相关 进程之间的通信的方式有哪些,他们之间的区别是什么!或者是忧缺点 linux上面的IPC大多都是从UNIX上面继承而来。 最初Unix IPC包括:管道、FIFO、信号。System V IPC包括:System V消息队列、Syste 末蓝、/ 2022年07月14日 05:59/ 0 赞/ 562 阅读
相关 矿机、矿池、矿场、云算力之间有什么关系?他们之间是怎么接入或者连接的? 矿池: 运行完全节点,并和区块链的P2P网络通讯,获取新的区块和把打包好的区块广播出去。矿池本身不进行挖矿计算,而是把计算任务分配给连接矿池的矿机。 矿机: 由CPU、G 川长思鸟来/ 2022年05月26日 02:53/ 0 赞/ 227 阅读
相关 什么是PHP-fpm?什么是fastcgi?他们之间有什么关系? 要理解fastcgi和PHP-fpm都是干什么的,首先要明白PHP的几种运行模式: 参考上一篇[https://mp.csdn.net/postedit/81302818][ 桃扇骨/ 2022年05月18日 06:29/ 0 赞/ 574 阅读
相关 SpringBoot的核心配置文件有哪些?他们的区别是什么?都有什么格式? 1.SpringBoot的核心配置文件有哪些? SpringBoot的核心配置文件有application和bootstarp配置文件。 2.他们的区别是什么? a 今天药忘吃喽~/ 2022年02月05日 07:25/ 0 赞/ 673 阅读
相关 进程之间的通信 进程之间的通信: 进程是指运行中的程序,进程的任务就是执行程序中的代码,如下面程序EchoPlayer类是一个独立的java程序,他可以在任意一条安装了JDK的主机上 青旅半醒/ 2021年09月15日 08:00/ 0 赞/ 341 阅读
相关 AMD是什么?CMD是什么?他们之间有哪些区别 AMD是什么?CMD是什么?他们之间有哪些区别 AMD 是 RequireJS 在推广过程中对模块定义提出的概念。 CMD 是 SeaJS 在推广过程中对模块定义提出的 男娘i/ 2021年08月13日 17:08/ 0 赞/ 1111 阅读
相关 什么是get/post?怎么样理解和他们?他们之间的区别又是什么? get请求不安全的,而且有长度限制。而post请求安全的且没有长度限制。get请求参数可以放在地址栏中,当下次在请求时,参数依旧可以再次携带。而post参数只在当前请求携... 朱雀/ 2021年05月10日 02:40/ 0 赞/ 113963 阅读
相关 URL和URI之间的区别是什么 URL是什么?有什么用? URL(统一资源定位符)是Internet上资源的地址,可以定义为引用地址的字符串,用于指示资源的位置以及用于访问它的协议。 URL是在网络上... 红太狼/ 2021年02月01日 17:39/ 0 赞/ 1089 阅读
还没有评论,来说两句吧...