当前位置:网站首页>进程之间的通信方式
进程之间的通信方式
2022-06-26 03:09:00 【草原上唱山歌】
管道:是一种半双工方式,数据单方向流动,只能在有亲缘关系的进程间使用。它是基于内核的,可以把它当作内核缓冲区。在用户空间与内核进行交换数据需要进行四次拷贝,用户空间—>内核,内核—>内存,内存—>内核,内核—>用户空间,这里为什么要拷贝到内核呢?因为数据都是在内存中执行。在管道的数据只能被读取1次,读取之后缓冲区就不存在了,它只能承载没有格式的字节流。
命名管道:与管道类似,但是它支持没有亲缘关系的进程也可以访问(所有进程都可以访问),命名管道的名字对应磁盘索引节点。
消息队列:即消息链表,是一系列保存在内核中的消息链表,交换数据也是需要进行4次拷贝。它的优势是可以对每个消息指定特定的消息类型,接收方可不按照队列的次序获取。
共享存储:映射一段可以被其它进程访问的内存块,即内存共享,由一个进程创建,多个进程访问。用它传递数据只需要拷贝三次,即用户空间—>内存—>用户空间。
信号量:控制多个进程对共享资源的访问,可以用之进程或线程同步。
信号:是一种比较复杂的通信方式,通知接收进程某个事件已经发生了。
套接字Socket:套接字Socket是通信的基石,它是基于TCP/IP
协议的网络通信的基本操作单元,是对网络通信过程中端点的抽象表示,包含网络通信的五种信息:连接使用协议、本地IP地址、本地进程的协议端口、远程IP地址、远程进程的协议端口。
边栏推荐
猜你喜欢
随机推荐
虫子 拷贝构造 运算符重载
Group counting notes - instruction pipeline of CPU
Qt编译出错ERROR: Unknown module(s) in QT: script
Distributed e-commerce project grain mall learning notes < 3 >
Translation notes of orb-slam series papers
多媒体元素,音频、视频
How to prompt
Is it safe to open an online stock account?
论文回顾:Unmixing-Based Soft Color Segmentation for Image Manipulation
Partition, column, list
golang正则regexp包使用-06-其他用法(特殊字符转换、查找正则共同前缀、切换贪婪模式、查询正则分组个数、查询正则分组名称、用正则切割、查询正则字串)
Plug in installation and shortcut keys of jupyter notebook
Analysis and optimization of ue5 global illumination system lumen
Wealth freedom skills: commercialize yourself
栖霞消防开展在建工地消防安全培训
《你不可不知的人性》經典語錄
Using meta analysis to drive the development of educational robot
经典模型——ResNet
Analysis of the multiple evaluation system of children's programming
【论文笔记】Deep Reinforcement Learning Control of Hand-Eye Coordination with a Software Retina