进程间通信的7种方式以及优点

news2024/12/27 15:46:52

七种通信方式为有名管道、无名管道、信号、消息队列、共享内存、信号灯集、套接字。

无名管道:

        无名管道是没有名字的管道,是一个特殊的文件。

        因为没有名字只能进行亲缘进程之间进行通信,也可以自己和自己进行通信。

        无名管道打开会开启两个文件描述符,一个读文件描述符一个写文件描述符。

        因为没有名字,不能使用open函数打开,需要使用特殊的api函数pipe()

        管道大小为64K

有名管道

        有名管道:有名字的管道,是一个特殊的文件(管道文件)类型为P。        

        因为有名字,所以可以任意进程之间进行通信,只能进行进程之间的通信,不能进行数据的存储。

        可以使用open函数打开。

管道的特点:

当管道的读端存在,写管道,有多少写多少,直到写满64K后,在write处阻塞;

当管道的读端不存在,写管道,会造成管道破裂,内核会向用户空间发送一个SIGPIPE的信号,导致进程结束;

当管道的写端存在,读管道,有多少读多少,没有数据,会在read处阻塞;

当管道的写端不存在,读管道,有多少读多少,没有数据,不会在read处阻塞;

信号:

        信号是信号是linux内核实现的。

        用户可以给某个进程发送信号,一个进程也能给另一个进程发送信号,内核也可以给某个进程发送信号

        一个进程收到信号后的操作有三种:默认(一般是杀死进程)、捕获、忽略

        

        

        以上信号中,只有两个信号既不能被捕获,也不能被忽略(SIGKILL、SIGSTOP)

        信号绑定函数signal()、信号发射函数kill()

消息队列:

消息队列是一种先进先出的队列型数据结构,实际上是系统内核中的一个内部链表。消息被顺序插入队列中,其中发送进程将消息添加到队列末尾,接受进程从队列头读取消息。

多个进程可同时向一个消息队列发送消息,也可以同时从一个消息队列中接收消息。发送进程把消息发送到队列尾部,接受进程从消息队列头部读取消息,消息一旦被读出就从队列中删除。

共享内存:

        共享内存是将物理空间的一片区域映射到内核空间,在将映射的内核空间与用户空间的区域进行连接。

        共享内存的操作不是一次性的,当共享内存段中的数据被读取后,依然存在

        共享内存是所有进程间通信方式中效率最高的,原因是,操作共享内存段时,无需进行用户空间和内核空间的切换

信号灯集:

信号灯集是完成多个进程之间同步问题;

信号灯集中的每一个灯,都控制一个进程

信号灯集中的等的编号都是从0开始

信号灯集中的每个灯都维护了一个value值,当value为0时,处于阻塞状态,等待其他进程将该资源的值加到1。

套接字

套接字是网络通信使用的介质,也是一种特殊的文件

socket也是一个函数,内核提供的函数,用于创建一个套接字,并返回当前套接字的文件描述符

通过套接字文件描述符可以实现多个进程之间的通信,可以通过文件描述符进程进程之间的绑定.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1429315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

只用一台服务器部署上线(宝塔面板) 前后端+数据库

所需材料 工具:安装宝塔面板服务器至少一台、域名一个 前端:生成dist文件(前端运行build命令) 后端:生成jar包(maven运行package命令) 准备: 打开宝塔面板,点击进入软…

断电保持霍尔传感器

断电保持霍尔传感器的工作原理 断电保持霍尔传感器是一种利用变压器或共振电路的检测元件,通过检测物体与探头之间的物理距离控制电路的开关状态,从而实现对物体位置和状态的监测。该开关可以通过调试和校准以满足不同场合的要求。 断电保持霍尔传感器控…

【LeetCode】每日一题 2024_1_31 找出不同元素数目差数组(数组/哈希)

文章目录 LeetCode?启动!!!题目:找出不同元素数目差数组题目描述代码与解题思路 LeetCode?启动!!! 1 月的最后一天,每日一题又坚持了一个月呀 题目&#xff…

编程实例分享,电玩城计时电玩店计时收费管理系统软件,可以控制电视电源计时程序

编程实例分享,电玩城计时电玩店计时收费管理系统软件,可以控制电视电源计时程序 一、前言 以下教程以 佳易王电玩店计时计费软件V18.0为例说明,软件程序下载可以点击最下方官网卡片 如上图,开始计时图片改变,并记录…

智能分析网关V4+EasyCVR视频融合平台——高速公路交通情况的实时监控和分析一体化方案

随着2024年春运帷幕的拉开,不少人的返乡之旅也即将开启,从这几日的新闻来看,高速上一路飘红。伴随恶劣天气,加上激增的车流,极易导致高速瘫痪,无法正常使用。为解决此问题,助力高速高效运营&…

K8s 集群可观测性-数据分流最佳实践

简介 在微服务架构下,一个 k8s 集群中经常会部署多套业务,同时也意味着不同团队、不同角色、不同的业务会在同一集群中,需要将不同业务的数据在不同的空间进行管理和查看。 在传统的主机环境下,这个是可以通过不同的主机部署 Da…

C语言项目---贪吃蛇

目录 一 、知识铺垫1.win32API介绍 二、贪吃蛇的数据结构的设计1.整体框架2.初始化界面3.贪吃蛇的运行4.游戏的退出 三、整体代码 一 、知识铺垫 贪吃蛇涉及的知识:C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、win32API等 1.win32API介绍 Windows…

vue项目在线预览和下载文档

在线预览:利用微软提供的Office Online平台,即可实现在线预览doc、ppt、excel等文档。 地址为:https://view.officeapps.live.com/op/view.aspx 下载:若要实现下载功能,直接将url赋值给a标签的href属性即可 下载实现方…

如何从电脑恢复已删除的文件

意外删除文件可能会导致噩梦般的场景。即使文件被故意删除,您仍然可能需要恢复文件的过去草稿或版本。值得庆幸的是,有多种方法可以恢复电脑上已删除的文件,无论是否花钱。以下是四种最常见的已删除文件恢复方法。 如何从电脑恢复已删除的文件…

移动端常见布局

单独移动端页面(主流) 1,流式布局(百分比布局) 流式布局,就是百分比布局,也称非固定像素布局 通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素的限制&#x…

第二十四天| 77. 组合

Leetcode 77. 组合 题目链接:77 组合 题干:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 思考:回溯法。把回溯法的搜索过程抽象为树形结构。 每次从集合中选取元素&#xff0…

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

一、前言 京东广告训练框架随着广告算法业务发展的特点也在快速迭代升级,回顾近几年大致经历了两次大版本的方案架构演变。第一阶段,随着2016年Tensorflow训练框架的开源,业界开始基于Tensorflow开源框架训练更复杂的模型。模型对特征规模和…

Android之命令行烧写OTA镜像(一百八十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

MySQL 备份恢复

1.1 MySQL日志管理 在数据库保存数据时,有时候不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性,就需要使用日志来查看或者恢复数据了。 数据库中数据丢失或被破坏可能原因: 误删除数…

算法设计与分析实验:动态规划与回溯

目录​​​​​​​ 一、编辑距离 1.1 具体思路 1.2 思路展示 1.3 代码实现 1.4 复杂度分析 1.5 运行结果 二、买卖股票的最佳时机 2.1 具体思路 2.2 思路展示 2.3 代码实现 2.4 复杂度分析 2.5 运行结果 三、单词拆分 3.1 具体思路 3.2 思路展示 3.3 代码实现…

【Nginx】Ubuntu如何安装使用Nginx反向代理?

文章目录 使用Nginx反向代理2个web接口服务步骤 1:安装 Nginx步骤 2:启动 Nginx 服务步骤 3:配置 Nginx步骤 4:启用配置步骤 5:检查配置步骤 6:重启 Nginx步骤 7:访问网站 proxy_set_header 含义…

Qt程序设计-左侧菜单栏实现

创建项目,在窗体左侧添加widget,右侧上面添加容器,容器里添加label、和关闭按钮,添加stackedwidget。 widget处理 widget里面添加几个toolButton按钮,按需添加,本例子添加4个,一个弹簧verticalSpacer 将几个按钮添加到同一个按钮组。 stackedwidget stackedwidge…

无人机激光雷达标定板

机载激光雷达标定板是用于校准和验证机载激光雷达系统的设备。由于机载激光雷达系统在测量地形、建筑物和植被等方面具有广泛的应用,因此标定板的使用对于确保测量结果的准确性和可靠性至关重要。 标定板通常由高反射率的材料制成,如镀金的玻璃或陶瓷&am…

如何选择最适合的服务器

许多朋友想做一些网站,应用,游戏,小程序等等,都需要接触一个基础,就是服务器。服务器相当于一台24小时不关机的联网电脑,浏览网页或者应用相当于用户在访问这台电脑里的文件。那么如何选择最适合自己的服务…

单片机学习笔记---中断系统(含外部中断)

目录 中断介绍 中断优先级 中断嵌套 中断技术的优点 中断的结构 中断请求源 中断优先级 5个基本中断内部的结构 INT0和INT1 T0和T1 串口 中断寄存器 IE TCON 中断优先级列表 中断号 中断响应的条件 代码编写实例分析 外部中断硬件电路分析 这一节我们主要是…