1.管道
在内核内存中维护一个缓冲器,这个缓冲器的存储能力有限的,可以读写操作,有名管道(FIFO)有文件实体,匿名管道(PIPE)没有文件实体。匿名管道只能用于具有公共祖先的进程。半双工,一端用于写入,一端用于读取。(同一个时间只能往同一个方向,方向是可以双向的)
2.信号
简介:是事件发生时的通知机制,有时也可以称之为软件中断,是一种异步通信的方式。
目的:
1.让进程知道已经发生了一个特定的事情
2.强迫进程执行自己代码中的信号处理程序
特点:
1.简单2.不能携带大量信息3.满足某个特定的条件发送4.优先级高
3.信号量
主要用于进程间以及同一进程不同线程之间的同步手段
特点
1.本质是一个计数器,内存中有多少个临界资源,信号量的数字就是多少
2.信号量基于操作系统的pv操作,程序对信号量的操作都是原子操作
3.信号量用于进程间同步,如果要进程间传递数据需要结合共享内存
4.共享内存
共享内存是效率最高的通信方式,允许两个或者多个进程共享物理内存的同一块区域.由于一个共享内存段会成为一个进程用户空间的一部分,所以这种机制无需内核介入
5.消息队列
提供了一种在两个不相关的进程之间传递数据的简单高效的方法。消息发送后可以立刻返回,有消息系统来确保信息的可靠传递,消息发布者只管把消息发布到消息队列中而不管谁来取走,消息使用者只管从消息队列中去消息而不管谁发布的。
解耦:只要保证消息格式不变,发送发和接收方可以不受对方的影响
异步:非核心流程异步化,提高系统响应性能。
削峰:限制用户数量,将接受的用户请求写入消息队列中,然后消息队列长度超过最大数量,直接抛弃用户请求或跳转到错误节目
6.Socket通信
网络中不同主机上的应用进程之间双向通信的端口的抽象。Linux下本质为内核借助缓冲区形成的伪文件。可以用文件描述符来引用套接字。
————————————————
版权声明:本文为优快云博主「l_ethan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/l_ethan/article/details/126449873