自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 收藏
  • 关注

原创 OpenClaw装好了不知道干什么?我让它把家里的NAS、电脑和AI全串起来了

本文介绍了如何通过OpenClaw与cpolar内网穿透工具的结合,实现AI助手从本地到公网的扩展应用。OpenClaw作为一个完全本地运行的AI工具,确保数据隐私安全,而cpolar则突破了局域网限制,使OpenClaw能够被远程访问。文章详细展示了三种实用场景:1) 外网访问家中NAS的电影资源;2) 快速生成并分享HTML小游戏;3) 远程控制家中电脑。这些应用无需复杂配置,只需简单指令即可实现,充分体现了AI技术与内网穿透结合带来的便利性和实用性。

2026-06-18 23:30:49 289 11

原创 监控显示一切正常,可用户根本打不开网站——Blackbox Exporter帮我找到了真相(1)

本文将带你快速上手 Blackbox Exporter,教你如何用 Prometheus 实现对网站、API、端口乃至整个链路的主动可用性监控,真正做到:服务是否在线,数据说了算,而不是用户投诉说了算。点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,我这里演示使用的是prometheus,大家可以自定义。最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问本地部署的prometheus页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

2026-06-11 22:16:09 515 12

原创 MySQL 复合查询全解析:从单表到多表的实战进阶

本文系统介绍了MySQL复合查询的核心技巧,包括单表查询(多条件筛选、自定义排序、聚合统计)、多表关联查询(两表/三表连接)、自连接、子查询(单行/多行/from子句嵌套)以及合并查询(union/union all)。通过实际案例演示了如何灵活运用这些技术解决企业级数据查询需求,如处理NULL值、避免笛卡尔积、实现表内数据关联等场景。文章强调掌握复合查询对处理分散在多表中的数据至关重要,并提供了不同场景下的语法实现和性能考量。

2025-10-29 19:08:34 1718 17

原创 仓颉语言中的协程调度机制深度解析

协程(Coroutine)是现代编程语言实现高并发与异步计算的核心机制之一。仓颉语言作为华为自研的下一代高性能通用编程语言,其协程系统在设计理念与运行机制上,体现了深度融合编译器优化、运行时调度与硬件感知能力的技术特色。本文将从调度原理、执行模型及实践应用三个方面,深入解析仓颉协程的核心技术。

2025-10-29 16:43:23 413

原创 MySQL 常用函数实操指南:从基础到实战案例

在 MySQL 数据库操作中,函数是提升数据处理效率的核心工具。无论是日期计算、字符串拼接,还是数据加密,掌握常用函数能让复杂需求变得简单。本文将从实际场景出发,梳理日期、字符串、数学及其他高频函数的用法,每个函数都附带可直接运行的代码案例,帮你快速上手。

2025-10-19 23:42:39 780 21

原创 MySQL 表操作核心指南:CRUD 与进阶技巧

本文详细介绍了MySQL中表的CRUD操作(创建、查询、更新、删除),重点解析了数据插入的各种方式(单行/多行、冲突处理)、查询语法(筛选列、过滤行、排序分页)及聚合函数使用。文章通过学生表和成绩表等实战案例,演示了基础操作如INSERT、SELECT、UPDATE、DELETE的具体应用,并深入讲解了高级功能如分组查询、NULL值处理、分页查询等。最后强调了数据操作的注意事项,特别是更新和删除操作的风险防范。

2025-10-19 16:08:10 1404 7

原创 MySQL 核心数据类型详解与实战案例

MySQL数据类型选择指南摘要 本文系统介绍了MySQL常用的四大数据类型及其应用场景。数值类型包括整数(tinyint到bigint)、小数(float/double/decimal)和bit类型,需根据取值范围和精度需求选择。字符串类型中char适合定长数据,varchar适合变长数据,text/blob用于大文本。日期时间类型需注意timestamp的2038年限制。特殊类型enum/set适合预定义选项。数据类型选择应遵循最小够用、精度优先和场景匹配原则,避免使用unsigned和timestamp

2025-10-19 15:32:18 867 2

原创 MySQL 数据库表操作实战指南

本文介绍了MySQL表的创建、修改和删除操作。创建表使用CREATE TABLE语法,可指定字段、数据类型、字符集和存储引擎,MyISAM和InnoDB引擎会生成不同的表文件。查看表结构使用DESC命令。修改表结构包括添加、修改、删除字段等操作,通过ALTER TABLE实现,其中MODIFY会丢失字段注释,CHANGE可修改列名。删除表使用DROP TABLE命令,会永久删除数据。文章强调生产环境中应谨慎执行修改和删除操作,建议先备份数据或考虑逻辑删除替代物理删除。

2025-10-17 00:15:00 440 6

原创 Ubuntu 环境下 MySQL 的安装与配置指南

通过以上步骤,你可以在 Ubuntu 系统上完成 MySQL 的安装、配置、登录和卸载等操作。根据实际需求,还可以进一步优化 MySQL 的配置参数以获得更好的性能。注意:启用免密码登录后,MySQL 可能不会正确绑定 3306 端口,生产环境不建议使用。输入安装时设置的密码(例如:123456)即可进入 MySQL 命令行界面。确认选择后按 OK 完成配置(全部都是OK就OK)上传安装包到服务器(可使用。命令或 SFTP 工具)检查 MySQL 服务状态。下载对应版本的安装包。

2025-10-17 00:15:00 2951 31

原创 MySQL 数据库核心操作全解析:从创建到备份与连接管理

本文系统介绍了MySQL数据库的基础管理操作,包括数据库创建、编码配置、查看修改、备份恢复和连接监控等核心内容。重点讲解了字符集与校验集的作用及配置方法,强调了IF NOT EXISTS等安全参数的使用,详细演示了mysqldump备份工具的使用场景和恢复流程,并提供了连接状态监控和异常连接处理的方法。文章指出合理选择编码配置、规范操作流程、做好数据备份是保障数据库稳定运行的关键,这些基础技能是后续深入学习MySQL高级特性的前提。

2025-10-16 16:44:44 2564 48

原创 数据库知识全解析:从基础概念到MySQL实战

本文系统介绍了数据库的核心概念与应用。首先阐述了数据库作为结构化数据存储系统的优势,包括安全性、查询效率和海量数据处理能力,对比了文件存储的不足。重点讲解了MySQL的体系结构、基本操作(连接、建库、建表、增删改查)及存储引擎分类(InnoDB和MyISAM为主),分析了不同引擎的特性差异。同时介绍了常见数据库产品(如Oracle、PostgreSQL等)及其适用场景,并解析了MySQL三层架构设计。全文以实践为导向,通过命令行示例演示了数据库管理的完整流程,为数据库学习提供了系统性的入门指导。

2025-10-16 13:47:01 1096 3

原创 深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用

本文深入探讨了Linux网络编程中epoll的边缘触发(ET)与水平触发(LT)模式的差异及实现。通过对比分析两种模式的核心特性、性能指标和适用场景,重点阐述了ET模式在高效I/O处理上的优势。文章详细介绍了基于ET模式的Reactor模型实现,包括关键组件设计、非阻塞I/O配合、事件处理完整性等技术要点,并提供了完整的TCP服务器实现代码。最后总结了ET模式在高并发场景下的性能优势,同时指出其编程复杂度较高,建议根据实际应用场景选择合适模式。该实现为构建高性能网络服务器提供了基础框架,可进一步扩展为多Re

2025-10-06 10:30:00 1334 48

原创 poll 函数原理与 TCP 服务器实现详解

本文介绍了poll函数作为select的改进版,解决了文件描述符数量限制和参数耦合问题。poll使用pollfd结构体数组管理文件描述符,分离输入输出参数,支持更多事件类型。文章详细解析了poll的核心参数、使用方法,并实现了一个poll版TCP服务器,展示了其处理并发连接的能力。与select相比,poll突破了1024的文件描述符限制,提高了效率,但仍采用轮询机制,在大规模并发场景下性能不足。最后总结了poll的优缺点,指出其适用于中低并发场景,而高并发需求应考虑epoll技术。

2025-10-05 00:15:00 1900 26

原创 深入理解 epoll:从核心函数到底层原理,打造高性能网络服务

本文深入解析Linux网络编程中的epoll机制,从核心函数、底层原理到实战应用。首先介绍epoll的三个核心系统调用:epoll_create创建实例、epoll_ctl管理事件、epoll_wait等待就绪事件。然后剖析epoll的高效原理,包括硬件中断、内核回调机制和红黑树+就绪链表的数据结构设计。最后通过实现一个完整的epoll版TCP服务器(含代码示例),展示epoll在实践中的应用。文章还对比了epoll与select/poll的性能差异,并探讨了边缘触发模式和非阻塞I/O等扩展话题,为构建高并

2025-10-05 00:15:00 1305 33

原创 种完麦子,就往南走

每个人都有自己的“麦子”要种,这“麦子”可能是背负房贷的窘迫,可能是赖以生存的工作,抑或是上有老下有小的日常琐碎。最近翻红的山东电视台前节目主持人大冰,在直播间里接到一个特殊的电话,是河南安阳的一位老太太打来的:“我六十多岁了,我想种完麦子就往南走,出去看看祖国的大好河山,我小的时候就想出去转转,现在年龄大了,再不出去就出不去了。也有的跟麦子奶奶一样,从小有一颗想出去走走的心,然而被琐事缠绕,六十岁才下定决心出走,为自己十六岁时就拥有的梦想。一个人出走的决心,一首浪漫的短诗,奔赴一次灵魂的按摩和洗礼。

2025-10-04 14:49:13 392 5

原创 IO 模型深度解析:从基础概念到五种模型的实战理解

本文深入解析计算机系统中的IO操作,从体系结构视角阐述IO作为数据迁移过程的本质,以及用户空间与内核空间的交互机制。系统介绍了阻塞/非阻塞、同步/异步四种IO组合模型,并详细对比五种经典IO模型(阻塞IO、非阻塞IO、信号驱动IO、多路复用IO和异步IO)的工作流程、优缺点及适用场景。特别针对Linux系统,通过代码示例展示了阻塞与非阻塞IO的具体实现,包括fcntl函数的使用方法。文章指出IO模型的演进始终围绕提高CPU利用率这一目标,建议开发者根据并发量、响应速度等业务需求选择合适的IO模型,平衡性能与

2025-10-04 00:23:51 1342 35

原创 I/O 多路复用之 select:从原理到 TCP 服务器实现

本文详细解析了select I/O多路复用机制及其实现。select作为最早的I/O复用技术,通过监视多个文件描述符,解决了传统阻塞I/O的效率问题。文章首先分析了I/O复用的必要性,然后深入讲解select函数参数、fd_set操作及工作流程,并完整实现了一个基于select的TCP服务器。该服务器通过辅助数组管理连接,区分处理新连接和数据事件,展示了select的核心应用。最后,文章对比了select的优缺点:虽然跨平台且实现简单,但在高并发场景下存在性能限制,为后续理解epoll等高效机制奠定了基础。

2025-10-04 00:23:36 1172 25

原创 数据链路层协议——以太网,ARP协议

本文深入解析了局域网通信中的核心技术原理,包括: MAC地址的核心作用 作为硬件级唯一标识(48位十六进制) 负责局域网内精准设备定位 与IP地址协同工作(IP导航+MAC交付) 以太网协议关键机制 MAC帧结构(目的/源MAC+类型字段+数据+CRC) 冲突处理(CSMA/CD算法) MTU/IPMTU/MSS的协同关系(避免IP分片) ARP协议工作原理 IP地址到MAC地址的解析机制 广播请求/单播应答流程 动态缓存与静态绑定策略 典型安全问题 ARP欺骗攻击原理(中间人攻击) 防御手段(静态绑定、检

2025-10-03 21:56:14 1759 25

原创 网络层协议—IP协议

本文深入解析了TCP/IP协议栈的核心机制与关键技术。首先阐释了TCP与IP的分层协作关系:IP层负责无连接的包路由转发,TCP层基于IP提供可靠传输控制。其次详细剖析了IP协议报文结构及其关键字段功能,包括寻址、分片、校验等。在网络编址方面,文章对比了传统分类编址和现代CIDR无类别编址的优劣,并分析了私有IP与公网IP的区别及NAT转换机制。此外,还探讨了路由器的核心功能,包括子网构建、DHCP服务、NAT转换和路由转发流程,并深入解析了IP分片机制的原理、实现及其对TCP/UDP协议的影响。这些内容全

2025-10-03 16:32:12 2473 38

原创 传输层协议——TCP协议

1.TCP 是面向连接的运输层协议。应用程序在使用 TCP 协议开展通信前,必须先建立起 TCP 连接。当数据传送完毕后,还需释放已建立的 TCP 连接。2.每一条 TCP 连接仅能拥有两个端点,且每一条 TCP 连接只能是点对点的(一对一)通信模式。3.TCP 提供可靠交付服务,通过 TCP 连接传送的数据,能够实现无差错、不丢失、不重复,并且按照发送顺序到达接收端。4.TCP 支持全双工通信,允许通信双方的应用进程在任意时刻都能发送数据。

2025-09-16 19:11:15 2504 60

原创 HTTPS如何保障数据的安全

我们发现HTTP协议并不是安全的。HTTP协议相对来说不安全的原因主要包括以下几点:1.数据传输的明文:HTTP协议传输的数据是明文的,即未经过加密处理。这使得任何人都可以截获传输的数据并进行监听、分析或篡改,导致数据的安全性受到威胁。2.缺乏数据完整性校验:HTTP协议没有对传输的数据进行完整性校验的机制,意味着在传输过程中数据可能会被篡改,而无法被检测到。这样的情况下,用户可能会收到被篡改后的信息,从而给恶意攻击者提供了可乘之机。

2025-09-11 00:23:47 1088 43

原创 传输层协议——UDP协议

传输层协议详解:TCP与UDP的核心差异与应用 传输层位于操作系统内核,负责端到端通信,实现进程间的逻辑连接。主要协议包括: TCP协议:面向连接,提供可靠传输,通过三次握手建立连接,具有确认和重传机制 UDP协议:无连接,不可靠传输,直接发送数据,不保证送达 核心概念: 端口号:16位标识符(0-65535),知名端口0-1023用于标准服务 五元组:源IP/端口、目的IP/端口、协议号,唯一标识通信 协议号:标识传输层协议类型(TCP=6,UDP=17) UDP特点: 固定8字节报头,最大64KB数据段

2025-09-11 00:23:29 1219 45

原创 HTTP 协议详解

HTTP(超文本传输协议,HyperText Transfer Protocol)是用于浏览器与服务器之间传输超文本的协议。它是万维网(WWW)中最为基础和常用的通信协议之一。HTTP协议通常运行在应用层,它是建立在TCP/IP协议之上的,负责在客户端(通常是浏览器)与服务器之间传输信息。HTTP协议有多个版本,其中1.0、1.1、2.0等版本均是基于TCP协议实现的,而HTTP/3则是基于UDP协议实现的。当前,HTTP1.0和HTTP/3广泛应用。协议。

2025-09-04 23:48:24 1306 34

原创 linux——自定义协议

自定义协议是开发者根据特定应用需求设计的数据传输规则,用于客户端与服务器之间的高效通信。它通过定义结构化数据格式(如Request和Response结构体)并结合序列化/反序列化技术(支持JSON或二进制格式)实现跨平台兼容性。本文以网络计算器为例,展示了TCP全双工通信下的协议实现:客户端发送序列化请求(如"1+1"),服务器处理后返回序列化结果。关键技术包括Socket编程、缓冲区管理、流量控制,以及使用C++的std::bind进行回调绑定。这种方案相比直接传输结构体具有更好的灵活

2025-09-04 22:45:00 2161 49

原创 简易TCP网络程序

摘要:本文详细对比了TCP和UDP协议在网络编程中的差异,重点分析了listen、accept和connect等核心函数的不同应用场景。TCP作为面向连接的协议需要建立可靠连接,而UDP作为无连接协议直接发送数据包。文章通过字符串回响程序实例展示了基于TCP协议的客户端/服务器实现,并针对多客户端并发访问场景,分别提出了多进程和多线程两种解决方案。其中多进程方案通过fork创建子进程,多线程方案使用pthread库实现线程池。最后探讨了守护进程的实现方法,包括使用daemon函数和手动实现方案,确保服务器能

2025-08-30 18:29:41 1464 42

原创 精简版UDP网络编程:Socket套接字应用

本文系统介绍了网络编程基础与UDP通信实现。主要内容包括:1)网络基础知识:IP地址、端口号的作用及与进程PID的关系,传输层协议TCP/UDP的选择,网络字节序转换;2)Socket编程:常用API接口、sockaddr结构体设计原理、套接字创建与绑定;3)UDP服务实现:构建字符串回响服务,包含服务器和客户端完整代码;4)高级应用:基于UDP的多人聊天室实现,采用生产者-消费者模型、环形队列和多线程技术,支持消息广播功能。通过具体代码示例,展示了从基础网络通信到复杂聊天系统的完整开发流程。

2025-08-30 15:32:43 1465 45

原创 网络基础知识

协议是一种约定,也是一种标准。例如,著名的IEEE 754标准规定了浮点数如何在内存中存储;再比如投资者往往会与被投资者签订一份对赌协议,确保投资顺利进行。协议制定后,参与者都必须遵守该协议。不同行业中的协议往往由该行业中的翘楚制定,比如在通信标准领域,华为担任了重要角色,并作为5G标准的主导者之一。

2025-08-20 21:52:12 4032 55

原创 Linux多线程——线程池

本文系统介绍了线程池的实现与优化,主要内容包括:1)线程池概念及池化技术原理,2)线程池实现的两种版本(朴素版和封装版),3)单例模式的多种实现方式(饿汉、懒汉及线程安全版),4)STL线程安全、智能指针线程安全等周边问题。文章重点探讨了如何通过单例模式优化线程池设计,确保全局唯一实例,并详细分析了各种锁机制和读者写者问题的解决方案,为构建高效并发系统提供了实用技术方案。

2025-08-20 17:47:49 1075 32

原创 Linux多线程——生产者消费者模型

生产者消费者模型是一种经典的多线程同步机制,通过缓冲区解耦生产者和消费者。本文介绍了基于阻塞队列和环形队列的两种实现方式。阻塞队列使用互斥锁和条件变量保证线程安全,当队列满时阻塞生产者,队列空时阻塞消费者。环形队列则利用信号量机制,通过空间下标取模实现循环存取,生产者和消费者可以并发执行。两种方案各有优劣:阻塞队列确保数据顺序性但可能引发死锁,环形队列性能更高但允许数据覆盖。文章通过代码示例展示了单/多生产消费场景的实现,并分析了不同场景下的适用性选择。该模型有效提高了系统并发处理能力,是任务调度和数据共享

2025-08-08 17:59:44 1131 40

原创 Linux多线程——线程互斥与同步

摘要:多线程并发访问共享资源时存在数据竞争问题,需通过互斥锁和同步机制解决。 临界资源与竞争问题:多线程同时操作全局变量(如g_val--)时,由于CPU指令的非原子性,可能导致数据不一致。例如,线程切换时未完成的操作会使变量值异常。 互斥锁保护:通过pthread_mutex_t实现加锁(pthread_mutex_lock)和解锁(pthread_mutex_unlock),确保临界区代码的原子性。锁的粒度应尽量细以减少性能损失。 线程同步:条件变量(pthread_cond_t)解决线程间执行顺序问题

2025-08-08 11:48:45 1447 41

原创 Linux多线程——线程控制

线程是进程内的基本执行单位,作为 CPU 执行的基本单位,线程的控制与任务执行效率息息相关。合理地进行线程管理,能大大提升程序的执行效率,掌握线程的基本操作至关重要。

2025-07-31 17:54:13 1116 37

原创 Linux多线程——线程的基本概念

摘要 本文深入探讨了操作系统中的进程与线程概念。线程作为轻量级执行单元,相比进程具有更低的创建和切换开销,能够提高程序并发性。在Linux系统中,线程通过复用进程管理机制实现,表现为轻量级进程(LWP),共享相同的虚拟地址空间和资源。文章详细分析了线程与进程的关系、地址空间管理机制,以及多线程编程的优势与挑战,包括性能提升、资源共享带来的同步问题等。通过代码示例,展示了多线程程序的运行特点及线程异常对进程的影响,为深入理解操作系统调度机制提供了理论基础。

2025-07-31 15:26:47 1208 44

原创 快乐的人做东西好像真的比较好吃

小摊和别人的不一样,在夜色中显得特别新,并且显然是精心布置过,周围围了一圈小树叶穿起来的土豆,旁边还挂着两把粉色泡沫做的剪刀装饰,走近一看,摊位上写着“剪刀洋芋”。店主早已仔仔细细包好了,大哥说想多要几个勺子,他也立刻答应,给了大哥6个,而此时我注意到他们的勺子也是精心挑选过的——长柄的,爱心形状,好几个颜色,看着很温馨。于是我又在夜市转了一圈,兜了回去,跑到小摊前,告诉他们土豆很好吃,并询问可不可以拍张照片,说想推荐给自己的朋友。摊主看起来很开心,一面祝我中秋快乐,一面选了只大土豆,又丝滑地将土豆剪开。

2025-07-26 00:28:41 318 10

原创 Linux进程信号信号处理

本文深入探讨了信号处理的关键机制与实现原理。首先分析了信号处理的时机选择,指出信号在内核态返回用户态时进行处理,以避免中断重要任务。文章详细阐述了用户态与内核态的转换机制,以及进程地址空间的管理方式,解释了信号处理过程如何利用CPU状态寄存器实现安全切换。重点介绍了sigaction函数的强大功能,包括信号屏蔽和自定义处理,并通过代码示例展示了其应用。此外,文章还补充了可重入函数、volatile关键字优化问题及SIGCHLD信号的子进程回收机制等关键知识,为理解Linux信号系统提供了全面视角。

2025-07-26 00:25:56 1275 39

原创 Linux进程信号——信号保存

本文深入探讨了信号传递过程中的核心概念与实现机制。文章首先解析了信号的四种产生方式(键盘、系统调用、软件条件、硬件异常)及三种状态(未决、递达、阻塞),并通过网购的比喻形象说明其运作原理。内核通过block、pending、handler三张表管理信号状态,其中前两者采用位图结构记录阻塞和未决状态,后者为函数指针数组处理递达动作。系统提供了sigset_t信号集及相关操作函数(如sigprocmask、sigpending)来管理信号屏蔽和未决状态。通过示例程序演示了信号阻塞、解除及未决状态检测的实现过程,

2025-07-25 21:14:39 1284 17

原创 Linux进程信号——信号产生

本文深入探讨了Linux系统中的进程信号机制。信号作为进程间通信与控制的重要手段,可分为普通信号(1-31)和实时信号(34-64)。文章详细介绍了信号的产生方式:1)键盘键入(如Ctrl+C触发SIGINT);2)系统调用(kill/raise/abort函数);3)软件条件(如alarm定时器);4)硬件异常(除零错误、段错误等)。重点分析了信号处理流程,包括信号注册(signal函数)、核心转储机制及其调试应用。通过示例代码展示了如何修改信号默认行为(除SIGKILL/SIGSTOP外)和利用核心转储

2025-07-25 20:38:23 1165 18

原创 消息队列与信号量:System V 进程间通信的基础

消息队列(Message Queue)是一种进程间通信机制,与管道和共享内存相比,它采用一种队列的方式来传递数据。消息队列通过**先进先出(FIFO)**的方式来管理消息,发送方将消息添加到队列尾部,而接收方则从队列头部读取消息。消息队列的特点:每个消息有类型(mtype),可以按类型区分消息。区分发送方和接受方的不同。发送和接收消息都是异步的,不需要发送方和接收方同时存在。消息队列的生命周期由操作系统管理,进程退出时不会自动删除。信号量(Semaphore)是一种用于实现同步和互斥。

2025-07-19 17:44:55 1379 34

原创 Linux进程通信——共享内存:System V 进程间通信的极速方案

共享内存(Shared Memory)是 System V 标准中的一种进程间通信机制,它允许多个进程共享物理内存的一部分。共享内存的出现解决了多个进程之间如何高效交换数据的问题,它是最适合高速、大量数据传输的 IPC 方式之一。与其他通信方式(如消息队列、信号量等)不同,共享内存的特点在于,它提供了进程直接操作同一块内存的能力。进程无需经过内核的中介,即可直接在内存中读写数据,从而避免了多次内核交互所产生的开销。

2025-07-19 15:33:11 1200 53

原创 Linux进程间通信--命名管道

命名管道是一种在文件系统中存在的特殊文件类型,它允许不同进程通过文件名(即“命名”)来访问和进行通信。与匿名管道相比命名管道的最大特点是允许没有共同祖先(即没有血缘关系)的进程之间进行通信。这使得命名管道在分布式系统和多进程应用中具有广泛的应用价值。之所以给管道起名字就是为了不同的进程之间利用管道名,找到管道文件进行进程通信,而不是局限于有亲缘关系的进程。比起匿名管道,命名管道也是内存级文件,在磁盘上都没有Data block块,命名管道多了一个inode结构体.1.time()函数time()

2025-07-11 17:46:21 1130 46

原创 Linux进程通信——匿名管道

管道是单向的通信方式,意味着数据只能从一个端流向另一个端。通常情况下,一个进程写数据到管道,而另一个进程从管道中读取数据。这种方式被称为“半双工通信”,如果需要实现双向通信,需要两个管道。基于文件的设计,管道本质上是内存中的文件;管道文件并不是磁盘级别的文件,而是内存级别文件,管道文件没有自己的inode,也没有名字。过内存中的缓冲区进行存储,操作系统会将管道作为文件来处理。管道分为匿名管道和命名管道。匿名管道没有名字,是由操作系统在内存中创建的,仅限于有血缘关系(如父子进程或兄弟进程)的进程间通信。

2025-07-11 15:02:23 1184 34

100期--数据结构板书+代码.zip

100期--数据结构板书+代码.zip

2024-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除