当前位置:网站首页>进程间的通信方式简介
进程间的通信方式简介
2022-07-30 05:39:00 【l_ethan】
目录
1.管道
1.1匿名管道
简介:管道是一个在内核内存中维护的缓冲器,这个缓冲器的存储能力是有限的。
特点
1.拥有读、写操作的能力,匿名管道没有文件实体,有名管道有文件实体,但不存储数据。
2.一个管道是一个字节流,使用管道时不存在消息或者消息边界的概念,从管道读取数据的进程可以读取任意大小的数据块。
3.单工
4.只能用在公共祖先的进程
1.2有名管道
简介:克服匿名管道只能用于亲缘关系的进程间通信,提出了有名管道(FIFO)。提供了一个路径名与之关联,以FIFO的文件形式存在于文件系统中,但FIFO的内容保存在内存中,
特点:
1.当使用FIFO的进程退出后,FIFO文件将继续保存在文件系统中以便以后使用
2.FIFO有文件名,不相关的进程可以通过打开有名管道进行通信
2.信号
简介:是事件发生时对进程的通知机制,有时也称之为软中断,是一种异步通信的方式,信号可以导致一个正在运行的几次呢被另一个正在运行的异步进程中断,转而处理某个突发事件。
特点:
1.不能携带大量信息
2.满足某个特定条件才发送
3.优先级高
3.消息队列
简介:异步通信的方式,有三个内容组测,product消息的发起方,broker消息的服务端,customer消息的消费。
应用场景:
1.异步处理:并行提高处理的效率
2.应用解耦:整合不同系统之间的通信
3.流量削峰:如果消息队列长度超过最大数量,则直接抛弃用户请求或者跳转错误页面
4.共享内存
简介:共享内存允许两个或者多个进程共享物理内存的同一块区域(通常称为段)。由于一个共享内存段会成为一个进程用户空间的一部分,所以这种通信无需内核介入,所有需要做的就是让一个进程将数据赋值进共享内存中,并且这部分数据会对其他所有共享同一个段的进程可用。
特点:速度快
5.信号量
简介:用户进程可以通过操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。信号量是一个变量来表示系统中某种资源的数量。
原语:是一种特殊的程序段,其执行只能一气呵成,不可被中断。
p、v操作
p:
1.s-1
2. s-1>=0进程继续执行
3.s-1<0,进程阻塞进入等待队列,转进程调度
v
1.s+1
2.s+1>0进程继续执行
3.s+1<=0,则从该信号的等待队列中唤醒一等待进程,然后在返回原进程继续执行或转进程调度
6.Socket
简介:socket可以看作是网络中不同主机上的应用进程之间进行双向通信的端口的抽象,是应用程序通过网络协议进行通信的接口。Linux环境下,socket用于表示进程间通信的特殊文件类型。本质位内核借助缓冲区形成的伪文件。可以用文件描述符来引用套接字。
边栏推荐
- MySQL的 DDL和DML和DQL的基本语法
- optimizer.zero_grad()
- Arrange numbers (DAY90) dfs
- Graphic mirror symmetry (schematic diagram)
- cross_val_score的用法
- Navicat cannot connect to mysql super detailed processing method
- [详解C语言]一文带你玩转数组
- 解决没有配置本地nacos但是一直发生localhost8848连接异常的问题
- “tensorflow.keras.preprocessing“ has no attribute “image_dataset_from_directory“
- How is crawler data collected and organized?
猜你喜欢
随机推荐
Navicat new database
质数(清华大学机试题)(DAY 86)
Programmers make money and practice, teach you how to do paid courses, self-media, paid articles and paid technical courses to make money
cmd(命令行)操作或连接mysql数据库,以及创建数据库与表
微信小程序开发学习
MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法
安装Nuxt.js时出现错误:TypeError:Cannot read property ‘eslint‘ of undefined
MySQL-Explain详解
PyCharm使用教程(较详细,图+文)
【线性神经网络】线性回归 / 基础优化方法
安装pytorch
Different usage scenarios of subqueries as retrieval tables and the question of whether to add aliases
St. Regis Takeaway Project: New dishes and dishes paged query
Memories · The last system design in the university era
81.搜索旋转排序数组II(数组旋转后二分查找)
k折交叉验证(k-fold Cross-validation)
MySQL (2)
Arrange numbers (DAY90) dfs
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
cnpm installation steps





![[Image processing] Image skeleton extraction based on central axis transformation with matlab code](/img/56/cfef9389291fa39612d55a07e1dbb3.png)



