[转帖]进程间通信方式

进程,间通信,方式 · 浏览次数 : 0

小编点评

**管道** *管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。 * 无名管道用于两个不同进程之间的通信。 * 有名管道也是一种半双工的通信方式,但它允许无亲缘关系进程间的通信。 **信号量** * 信号量是一个计数器,可以用来控制多个线程对共享资源的访问。 * 信号量用于多线程之间的同步。 **信号** * 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 **消息队列** * 消息队列是消息的链表,存放在内核中并由消息队列标识符标识。 * 消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点。 * 消息队列是UNIX下不同进程之间可实现共享资源的一种机制。 **共享内存** * 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。

正文

1)管道 
管道分为有名管道和无名管道 
无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端,这样提供了两个进程之间数据流动的一种方式。 
有名管道也是一种半双工的通信方式,但是它允许无亲缘关系进程间的通信。

2)信号量 
信号量是一个计数器,可以用来控制多个线程对共享资源的访问.,它不是用于交换大批数据,而用于多线程之间的同步.它常作为一种锁机制,防止某进程在访问资源时其它进程也访问该资源.因此,主要作为进程间以及同一个进程内不同线程之间的同步手段.

3)信号 
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生.

4)消息队列 
消息队列是消息的链表,存放在内核中并由消息队列标识符标识.消息队列克服了信号传递信息少,管道只能承载无格式字节流以及缓冲区大小受限等特点.消息队列是UNIX下不同进程之间可实现共享资源的一种机制,UNIX允许不同进程将格式化的数据流以消息队列形式发送给任意进程.对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制.通过使用消息类型,进程可以按任何顺序读信息,或为消息安排优先级顺序.

5)共享内存 
共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问.共享内存是最快的IPC(进程间通信)方式,它是针对其它进程间通信方式运行效率低而专门设计的.它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步与通信.

6)套接字:可用于不同及其间的进程通信

与[转帖]进程间通信方式相似的内容:

[转帖]进程间通信方式

1)管道 管道分为有名管道和无名管道 无名管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用.进程的亲缘关系一般指的是父子关系。无明管道一般用于两个不同进程之间的通信。当一个进程创建了一个管道,并调用fork创建自己的一个子进程后,父进程关闭读管道端,子进程关闭写管道端

[转帖]setsockopt(setsockopt的使用方法及注意事项)

http://xingzuo.aitcweb.com/9156453.html 1. setsockopt简介 setsockopt是一个系统调用函数,用于设置套接字选项。套接字是指通信的两个端点之间的一种接口,可用于实现网络通信和进程间通信。使用setsockopt可以设置各种套接字选项,例如:超

[转帖]消息队列中间件-概述

1. 简介 MQ(Message Queue)消息队列是一种应用程序对应用程序的通信方法,应用程序通过读(出队)写(入队)队列的消息(针对应用程序的数据)进行通信。 MQ是消费者-生产者模型的典型代表,生产者往消息队列中不断写入消息,而消费者则可以读取或者订阅队列中的消息,并进行消息处理。 消息队列

[转帖]微服务的进程间通信(IPC)

https://www.cnblogs.com/charlieroro/p/14707910.html 目录 微服务的进程间通信(IPC) 术语 概述 通信视角 APIs 消息格式 RPC REST gRPC 断路器 API通信的健壮性 服务发现 异步消息 概念 消息 消息类型 Channels 异

[转帖]AF_UNIX和AF_INET

https://www.cnblogs.com/shangerzhong/p/9153737.html family参数代表地址家族,比较常用的为AF_INET或AF_UNIX。AF_UNIX用于同一台机器上的进程间通信,AF_INET对于IPV4协议的TCP和UDP 。 type参数代表套接字类型

[转帖]AF_UNIX 本地通信

文章目录 一、AF_UNIX 本地通信1. Linux进程通信机制2. socket本地域套接字AF_UNIX3. demo示例 二、AF_INET域与AF_UNIX域socket通信原理对比1. AF_INET域socket通信过程2. AF_UNIX域socket通信过程3. 相同点4. 不同点

[转帖]Unix Domain Socket– IPC通信机制

什么是Unix Domain Socket 基于socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC 更有效率 : 不需

[转帖]UNIX SOCKET简介

UNIX Domain SOCKET 是在Socket架构上发展起来的用于同一台主机的进程间通讯(IPC)。它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序列号应答等。只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain SOCKET有SOKCET_DGRAM和SOCKET_

[转帖]字节跳动开源 Shmipc:基于共享内存的高性能 IPC

https://maimai.cn/article/detail?fid=1780832041&efid=WeW8ji-LiPaXA8QER_Q1YQ 简介 CloudWeGo - Shmipc 是字节跳动服务框架团队研发的高性能进程间通讯库,它基于共享内存构建,具有零拷贝的特点,同时它引入的同步机

[转帖]Web技术(七):如何使用并实现MQTT 消息订阅-发布模型?

文章目录 一、什么是发布-订阅消息模型?二、订阅-发布消息模型有哪些应用?2.1 应用于IP 物联网络中的消息传递2.2 应用于操作系统进程间的消息传递2.3 应用于MESH 自组网中的消息传递 三、MQTT 如何实现订阅-发布消息模型?3.1 如何在本机实践MQTT 通信并抓包分析?3.2 MQT