当前位置: 首页 > news >正文

管道与共享内存

一,命名管道

管道的限制就是他只能在有血缘关系(父子进程)的进程中,允许互相访问,这是有局限性的,所以我们想在毫无关系的进程中允许他们相互访问,这就是命名管道的定义。
总结:命名管道就是让不同进程可以通信,让不同的进程看到同一份资源
在这里插入图片描述
就比如这个图,通过管道让两个进程看到同一个资源,然后执行不同的任务,进程A就进行向文件中读取数据,而进程B就是向文件中写入数据。

两个不同的进程打开同一份文件时,他们需要自己独立的文件描述符,但是只需要相同的一份缓冲区这也是管道。

创建命名管道

在这里插入图片描述

二,共享内存

共享内存也是让毫无关系的进程进行通信(不同的进程看到同一份资源);

1.创建共享内存

在这里插入图片描述
对于OS来说可能有很多的程序需要内存共享,所以要先描述在组织,shm结构体包含了共享内存的属性。

系统中有很多的共享内存如何保证两个进程看到的是同一个内存呢?
给共享内存提供唯一性的标识,共享内存的属性中有key_t值。

shmget的第三个参数shmflg两个重要的宏

  1. IPC_CREAT:如果共享内存不存在就创建,如果已经存在就获取他
  2. :不能单独使用
  3. IPC_CREAT|IPC_EXCL:不存在就创建,存在就出错返回!

key的作用就用来标识贡献内存的唯一性!

1.1生成key

在这里插入图片描述

使用共享内存通信,只需要一个进程创建新得shm,另一个直接通信即可。
在这里插入图片描述
贡献内存,进程结束我们没有主动关闭,他就会一直存在,他的生命周期随内核,所以我们要手动的去关闭它

补充:系统指令删除共享内存

ipcs -m

查看系统中指定用户创建得共享内存
在这里插入图片描述

ipcrm -m [shmid]

删除共享内存
在这里插入图片描述

2.删除共享内存

在这里插入图片描述
另外shmctl不仅仅可以删除共享内存,它还可以获取共享内存的属性。
在这里插入图片描述

3.挂接共享内存

在这里插入图片描述
shmaddr:用户指明讲共享内存挂接到哪里;
挂接成功表示:我们可以用addr返回值,直接访问共享内存。

4.去关联

在这里插入图片描述

三,共享内存的缺点

我们在测试的时候就会发现一个问题,当client都没有在向共享内存中写入数据,server就一直在读取了:共享内存不提供任何进程间协同的机制。这是共享内存的缺点,会导致数据不一致。所以加入管道就可以避免这一缺点。

相关文章:

管道与共享内存

一,命名管道 管道的限制就是他只能在有血缘关系(父子进程)的进程中,允许互相访问,这是有局限性的,所以我们想在毫无关系的进程中允许他们相互访问,这就是命名管道的定义。 总结:命名…...

ES 自定义排序方式

es默认score是根据query的相关度进行打分的,具体打分机制可以参见:官方文档。如果召回时既希望有相关性又能根据其他信息进行排序。 例如小红书搜索的时候,可能既希望有召回相关度又能根据热度信息(如果喜欢、收藏等等参数去进行召…...

在vue中,编写一个li标签同时使用v-for和v-if,谁的优先级更高

在 Vue 中,v-if 和 v-for 是两个常用的指令,但它们的优先级不同。当二者一起使用时,v-for 的优先级高于 v-if。这意味着,v-for 会先执行,即使列表中的某些元素不满足 v-if 条件,它们仍会被遍历和渲染。 由…...

Java 后端开发面试题及其答案

以下是一些常见的 Java 后端开发面试题及其答案,涵盖了 Java 基础、面向对象、并发、多线程、框架等多个方面: 1. Java 中的基本数据类型有哪些? 答案: Java 中的基本数据类型有 8 种: int:32 位整数lon…...

C++,STL 045(24.10.24)

内容 1.对set容器的大小进行操作。 2.set容器的交换操作。 运行代码 #include <iostream> #include <set>using namespace std;void printSet(set<int> &s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it <…...

二叉树习题其五【力扣】【算法学习day.12】

前言 书接上篇文章二叉树习题其四&#xff0c;这篇文章我们将基础拓展 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一…...

【数据库】Mysql的锁类型

Mysql中的锁机制主要是为了保证数据的一致性和完整性&#xff0c;在并发的情况下起着至关重要的作用。其中锁的类型主要是分为以下几种&#xff1a; 按照粒度分类 全局锁&#xff1a;对于整个数据库实例进行枷锁&#xff0c;加锁后整个实例就处于只读的状态。局锁通常用于需要…...

自媒体短视频制作素材下载网站推荐,让创作更简单

随着自媒体行业的火爆&#xff0c;视频质量要求也越来越高。想要找到无版权的高清视频素材并不容易&#xff0c;但别担心&#xff01;今天为大家整理了5个国内外高质量的素材网站&#xff0c;让你轻松获取自媒体短视频素材&#xff0c;快收藏起来吧&#xff01; 蛙学网 蛙学网是…...

Altium Designer 入门基础教程(五)

本文章继续接着《Altium Designer 入门基础教程&#xff08;四&#xff09;》的内容往下介绍&#xff1a; 七、AD画板的整个流程步骤 I.集成库的制作 AD元件库有2种&#xff1a;1、原理图元件库SCH.LIB 2、印刷电路板&#xff08;PCB&#xff09;元件库 PCB.LIB 印刷电路…...

Java题集练习3

Java题集练习3 1 什么时候用instanceof instanceOf关键字主要用于判断一个对象是否为某个类的子类或是接口的实例&#xff0c;通常用于类型转换和运行时类型判断的场景&#xff0c;比如继承和多态中。比如&#xff0c;创建一个Animal类及其子类Cat和Cat子类Hat&#xff0c;可…...

【部署篇】Haproxy-01安装部署(源码方式安装)

‌一、HAProxy概述‌ HAProxy是一款免费、快速且可靠的代理软件&#xff0c;提供高可用性、负载均衡&#xff0c;支持TCP和HTTP应用代理&#xff0c;HAProxy凭借其卓越的性能和灵活性&#xff0c;成为众多知名网站和系统的首选代理软件。‌ ‌核心特点‌&#xff1a; ‌高性能…...

开拓鸿蒙测试新境界,龙测科技引领自动化测试未来

在当今科技舞台上&#xff0c;鸿蒙 OS 以非凡先进性强势登场&#xff0c;打破传统操作系统格局&#xff0c;为软件测试领域带来全新机遇与艰巨挑战。 一、鸿蒙 OS 的辉煌崛起 &#xff08;一&#xff09;壮丽发展历程与卓越市场地位 鸿蒙 OS 的发展如波澜壮阔的史诗。2023 年…...

Java项目-基于springboot框架的自习室预订系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…...

调整数组奇偶数顺序

今天给大家分享一道题目&#xff0c;要求我们输入一个数组&#xff0c;将全部奇数放在偶数前面&#xff08;无需比较大小&#xff09;&#xff0c;下面是我写的代码 这个方法比使用三个数组进行数据传输要节省不少程序运行时间&#xff0c;缺点是使用了较多的while循环&#xf…...

Electron调用nodejs的cpp .node扩展【非安全】

Electron调用nodejs的cpp .node扩展【非安全】 环境&#xff1a; electron: 30.1.1 nodejs: 20.14.0前言 Electron中可以非常容易的调用nodejs的js代码&#xff0c;但是对于cpp .node扩展需要一定的配置才能调用&#xff0c;下面介绍一种最简单的cpp扩展的调用方法&#xff…...

一文了解AOSP是什么?

一文了解AOSP是什么&#xff1f; AOSP基本信息 基本定义 AOSP是Android Open Source Project的缩写&#xff0c;这是一个由Google维护的完全免费和开放的操作系统开发项目。它是Android系统的核心基础&#xff0c;提供了构建移动操作系统所需的基本组件。 主要特点 完全开源…...

ffmpeg视频边缘模糊,打造梦幻般的视觉效果!

在视频编辑的世界里&#xff0c;细节决定成败。边缘模糊效果是一种强大的工具&#xff0c;可以让你的作品瞬间提升质感。通过简单的命令&#xff0c;你可以轻松实现视频边缘的柔和化处理&#xff0c;创造出梦幻般的视觉效果。 想象一下&#xff0c;当你将一段普通的视频应用边…...

[Wireshark] 使用Wireshark抓包https数据包并显示为明文、配置SSLKEYLOGFILE变量(附下载链接)

前言 wireshark安装包 链接&#xff1a;https://pan.quark.cn/s/febb28f57c01 提取码&#xff1a;fUCQ 链接失效&#xff08;可能会被官方和谐&#xff09;可评论或私信我重发 chrome与firefox在访问https网站的时候会将密钥写入这个环境变量SSLKEYLOGFILE中&#xff0c;在wir…...

大话红黑树之(1)入门介绍

红黑树简介 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉搜索树&#xff0c;其关键特性是通过颜色标记&#xff08;红色和黑色&#xff09;来保证树的平衡性&#xff0c;从而在最坏情况下依然可以保持较高的查找、插入和删除操作的效率。红黑树通常用于需…...

ESC/POS图片打印指令

一&#xff1a;实践前的理论部分 蓝牙/热敏打印机如何打印图片。 票据打印机的指令和条码打印机的指令对于打印图片的格式要求基本都相似 看看ESC/POS指令的文档 是的看不懂。。。干脆直接试试好了&#xff0c;从如何打印一个像素的小黑点开始。 注意到x的最小单位是字节数…...

Unity之如何在Linux上部署Dedicated Server专用服务器

文章目录 前言构建为专用服务器启动时获取参数在 DigitalOcean 上准备 Linux 服务器最后,让我们开始吧。前言 我们在使用Mirror,Fishnet或者Unity Netcode开发多人游戏时,一般有三种链接模式,分别是:Host,Server,Client。 Host:代表既是客户端又是服务器 Server:代表…...

十、Linux 故障排除专业案例分享

Linux 故障排除专业案例分享 在 Linux 操作系统漫长的使用历程当中&#xff0c;不可避免地会遭遇到各种各样不同类型的故障。本文将会深入而全面地阐述一些较为常见的 Linux 故障以及与之相对应的解决方案。其目的在于&#xff0c;当用户在实际使用过程中面临类似问题的时候&a…...

智慧楼宇平台,构筑未来智慧城市的基石

随着城市化进程的加速&#xff0c;城市面临着前所未有的挑战。人口密度的增加、资源的紧张、环境的恶化以及对高效能源管理的需求&#xff0c;都在推动着我们寻找更加智能、可持续的城市解决方案。智慧楼宇作为智慧城市建设的重要组成部分&#xff0c;正逐渐成为推动城市可持续…...

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在 GC ROOT 的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内…...

线程同步之双摄

如何实现两个摄像头进行同步&#xff0c;并利用同步的信号做一些事情&#xff0c; 比如stereo camera 做深度&#xff0c;如果是自己整的两个camera&#xff0c;同步就需要自己做&#xff0c; 那么这时候可以利用线程同步手写一个&#xff0c;下面给一个示例代码&#xff1a; …...

使用 PyTorch 构建 LSTM 股票价格预测模型

目录 引言准备工作1. 训练模型&#xff08;train.py&#xff09;2. 模型定义&#xff08;model.py&#xff09;3. 测试模型和可视化&#xff08;test.py&#xff09;使用说明模型调整结论 引言 在金融领域&#xff0c;股票价格预测是一个重要且具有挑战性的任务。随着深度学习…...

【C++篇】C++类与对象深度解析(五):友元机制、内部类与匿名对象的讲解

文章目录 前言 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助&#xff01…...

模型训练进度条的代码

这个内容难在什么地方呢&#xff1f; 我想要跳转到另一个页面的时候 如何保存当前的训练状态&#xff0c;本来还想着加一个页面去管理进度的。然后想到了localstorage&#xff0c;将一些信息存储到浏览器中去。 进度条展示 <el-form-item label"训练进度" v-show…...

直观理解反向传播 | Chapter 3 | Deep Learning | 3Blue1Brown

目录 前言1. 简介2. 回顾3. 直观的演绎示例4. 随机梯度下降相关资料结语 前言 3Blue1Brown 视频笔记&#xff0c;仅供自己参考 这个章节主要来直观地理解反向传播算法到底在做什么 官网&#xff1a;https://www.3blue1brown.com 视频&#xff1a;https://www.bilibili.com/vide…...

052_python基于Python高校岗位招聘和分析平台

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…...

一网网站制作平台/seo上首页

什么是探针 探针Probe是由 kubelet对容器执行的定期诊断。要执行诊断&#xff0c;kubelet 调用由容器实现的 Handler。有三种类型的处理程序&#xff1a; ExecAction&#xff1a;在容器内执行指定命令。如果命令退出时返回码为 0 则认为诊断成功。TCPSocketAction&#xff1a;对…...

wordpress导出图片/南京网站设计优化公司

#Html今日学习内容这是第一次#x{width: 100px;height: 400px;}#f{width: 100px;height:50px;}.bordered {border-style:solid;color:red;}.yoxixi {color:red;text-decoration:underline;font-weight:bold;}锚点标题一我很快乐&#xff0c;我很喜欢&#xff0c;很愉悦。标题二我…...

网站建设与栏目设置/站长友情链接平台

步骤 1.提供静态数据 2.把提供的数据渲染到页面上 3.添加图书 4.修改图书 5.删除图书 代码 <html lang"en"><head><meta charset"UTF-8"><title>vue图书管理系统</title><style type"text/css">.grid {…...

网站首页怎么做全屏swf/济宁网站建设

当一个类有多个实例&#xff0c;但是在实例之间有着相互的关联关系&#xff0c;此时&#xff0c;不建议在实例中新增一个成员属性来描述这种关联关系 据一个实际场景来帮助理解&#xff1a;People类有两个实例&#xff1a;AA和BB&#xff0c;AA是男的&#xff0c;BB 是女的&…...

做彩票游戏网站违法吗/北京关键词优化报价

一、 体系架构&#xff1a; 前端两台服务器作 LVS 负载均衡&#xff0c;两台是为了作双机热备使用&#xff08;可以为多台&#xff09;。后端两台服务器&#xff08;可以为多台&#xff09;&#xff0c;作业务使用&#xff0c;客户端通过负载均衡后&#xff0c;将连接 ( 以 …...

欧美男女做黄色网站/源码之家

在Oracle 10g中&#xff0c;Flash back家族分为以下成员&#xff1a;Flashback Database | Flashback Drop | Flashback Table | Flashback Query(Flashback Query,Flashback Version Query&#xff0c;Flashback Transaction Query)。 闪回删除表(dropped tabl…...