自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 个人博客声明

这里,是我学习的痕迹,也是我们共同成长的空间,希望通过这个博客与更多志同道合的朋友们一起学习和进步。知识的分享应当建立在尊重与理解之上,如果我的博客中无意间使用了你的原创内容或者您发现博客中有任何内容侵犯了您的权益,我重视知识产权和版权保护问题,收到通知后我会在第一时间进行删除或修正。在这个博客里,我将不定期分享我在学习过程中遇到的各种有趣的技术点、代码片段、图片资料以及有价值的文档。

2024-07-03 19:45:38 709 22

原创 13 表的内外连接

摘要: 本文介绍了MySQL中的表连接操作,分为内连接和外连接两种类型。**内连接(INNER JOIN)**仅返回两表中匹配的行,未匹配的数据丢弃,适合查询关联数据(如“已下单用户”)。外连接包括左连接(LEFT JOIN)和右连接(RIGHT JOIN),左连接保留左表全部数据,右表未匹配时填充NULL;右连接反之(但建议改用左连接简化逻辑)。通过示例代码对比了不同连接的效果,并总结其差异:内连接取交集,外连接保留单边全部数据。适用于需完整展示主表数据或分析关联关系的场景。 关键词: MySQL、内连接

2026-06-20 18:00:00 227

原创 12 复合查询下

本文介绍了MySQL中子查询的几种常见用法,包括单行子查询、多行子查询、多列子查询以及在FROM子句中使用子查询。单行子查询用于比较操作,多行子查询常用IN/ANY/ALL操作符,多列子查询需要打包列名整体比较。FROM子句中的子查询需起别名作为临时表使用。文章通过具体SQL示例演示了每种查询的应用场景和语法要点,帮助理解如何嵌套查询实现复杂数据筛选和计算。

2026-06-20 09:30:00 210

原创 11 复合查询上

MySQL复合查询(上)摘要 本文介绍了MySQL复合查询的基础知识,首先回顾了基本查询操作: 创建了示例员工表emp并插入14条测试数据 演示了带AND/OR条件的复合查询示例,筛选工资>500或职位为MANAGER且名字以J开头的员工 展示了多字段排序,按部门号升序、工资降序排列员工数据 文章属于"MySQL_小米里的大麦"专栏,作者CSDN博客和GitHub主页已给出。后续内容将继续探讨更复杂的查询操作。 关键词:MySQL、复合查询、条件筛选、排序、多表查询

2026-06-19 17:30:00 393

原创 10 内置函数下

MySQL内置函数涵盖了数学运算、进制转换、随机数生成、格式化输出等实用功能。数学函数如ABS()取绝对值、BIN()/HEX()进制转换、CEILING()/FLOOR()取整、FORMAT()数字格式化、MOD()取余等,使用方式类似C/C++数学库。其他实用函数包括:USER()查看当前连接用户及来源主机,DATABASE()返回当前使用数据库(需先USE选择库),以及重点函数MD5()生成32位不可逆哈希值,其特点包括快速、固定输出且对数字自动转为字符串处理。

2026-06-19 09:00:00 219

原创 09 内置函数上

MySQL内置函数(上):日期函数详解 本文介绍了MySQL中常用的日期函数,主要分为三类:获取时间、计算时间和按时间筛选。 核心日期函数 获取当前时间:NOW()(日期+时间)、CURDATE()(日期)、CURTIME()(时间) 提取时间部分:DATE()取日期、TIME()取时间、YEAR()/MONTH()/DAY()等提取特定字段 时间计算: DATE_ADD()和DATE_SUB()进行时间加减 DATEDIFF()计算日期差 TIMESTAMPDIFF()精确时间差计算 实际应用 记录创建/

2026-06-18 17:30:00 173

原创 08 表的增删改查下

本文介绍了MySQL中表的增删改查操作的下半部分,主要聚焦于UPDATE(修改)和DELETE(删除)操作,以及插入查询结果的高效方法。 UPDATE操作:用于修改已有数据,必须配合WHERE条件精确更新,避免全表修改风险。支持单字段更新、条件更新多行、自增/自减更新以及结合子查询的复杂更新(如UPDATE JOIN)。 DELETE操作:按条件删除行,可回滚;TRUNCATE则是快速清空表数据(不可回滚),适用于需要重置表的场景。 插入查询结果:通过INSERT INTO ... SELECT ...语法

2026-06-18 09:00:00 443

原创 07 表的增删改查上

本文介绍了MySQL中表数据的增删改查操作基础部分,重点讲解了CREATE(创建)操作的四种常用语法: 单行全列插入:基本语法INSERT INTO 表名 VALUES (值1,值2...),需注意列顺序对齐,可用NULL/DEFAULT占位。 多行指定列插入:高效写法INSERT INTO 表名(列1,列2) VALUES (值1,值2),(值3,值4)...,支持批量插入且性能更优。 冲突更新:通过INSERT...ON DUPLICATE KEY UPDATE实现主键/唯一键冲突时自动更新指定字段,适

2026-06-17 18:30:00 176

原创 06 表的约束

MySQL表的约束机制解析 本文详细介绍了MySQL中表的约束机制,主要包括空属性和默认值两种约束类型: 空属性约束:分为NULL(允许为空)和NOT NULL(非空)两种。非空字段必须显式赋值,否则会报错;而可空字段可以省略赋值,默认填充NULL值。 默认值约束:通过DEFAULT关键字设置字段默认值,当插入数据时未显式赋值则自动填充默认值。常见用法包括数值默认值、字符串默认值和当前时间戳。 文章通过多个示例演示了两种约束的使用方法及注意事项,特别指出: 同时设置NOT NULL和DEFAULT时,后者可

2026-04-16 17:30:00 659

原创 05 数据类型

MySQL常用数据类型一览,涵盖数值、字符串、时间日期等类型,并提供开发推荐。数值类型包括TINYINT、INT、DECIMAL等;字符串类型有CHAR、VARCHAR、TEXT;时间类型推荐DATETIME和TIMESTAMP。重点说明无符号类型、精度参数及存储特性,并针对不同场景给出最佳实践建议,如金额使用DECIMAL、主键用BIGINT UNSIGNED等。帮助开发者快速选择合适的数据类型,平衡存储效率与功能需求。

2026-04-16 08:30:00 628

原创 04 表的操作

本文介绍了MySQL中表的创建、插入数据和查看表结构的操作方法。主要内容包括:1. 创建表的语法格式,详细说明了参数如数据类型、约束条件、存储引擎等;2. 提供了创建学生表的示例,并解释了不同存储引擎生成的文件差异;3. 介绍了两种插入数据的语法(指定列插入和全列插入)及注意事项;4. 讲解了如何查看数据库中的表列表以及表结构定义。文章还包含了常见数据类型和约束条件的速查表,适合MySQL初学者快速掌握表的基本操作。

2026-04-15 17:30:00 836

原创 03 库的操作

这篇文章详细介绍了MySQL数据库的创建、字符集和校验规则的相关操作。主要内容包括: 创建数据库的语法和参数说明,支持指定字符集和校验规则,演示了默认创建和指定UTF-8编码的多种写法。 字符集和校验规则的概念解析,包括如何查看系统默认设置、MySQL支持的字符集列表,以及不同字符集对应的校验规则。 数据库命名规范和注意事项,如避免使用关键字、命名建议等。 提供了大量实用SQL命令示例,包括创建数据库、查看字符集配置、查询支持的字符集等。 文章采用技术文档风格,包含清晰的代码块、参数表格和注释说明,适合My

2026-04-15 08:30:00 864

原创 02 数据库基础

文章摘要 本文系统介绍了数据库的基础知识,重点解析了MySQL数据库的核心概念与应用。首先阐述了数据库相较于文件存储的优势,包括安全性、查询效率、管理便利性等方面的显著提升。接着分析了主流数据库的特点,如Oracle的企业级能力、MySQL的开源优势、PostgreSQL的学术严谨性等,特别强调了MariaDB作为MySQL分支的改进方向。文章详细演示了MySQL的基本操作,包括服务器连接、数据库层级关系(服务器>数据库>表>行/列)以及系统库功能,如information_schema的

2026-04-14 17:00:00 886

原创 01 在 Ubuntu 22.04 上安装 MySQL

这篇文章详细介绍了在Ubuntu 22.04系统上安装和配置MySQL数据库的完整流程。主要内容包括:1)检查并彻底卸载旧版本MySQL/MariaDB;2)安装MySQL 8.0(Ubuntu 22.04默认版本);3)通过mysql_secure_installation进行安全加固;4)设置root密码并修改认证方式;5)配置MySQL服务器参数,包括字符集设置和远程访问权限。文章特别强调了安全措施的重要性,并提供了详细的命令行操作步骤和配置文件修改建议,适合需要部署MySQL的开发者和系统管理员参考

2026-04-14 08:30:00 396

原创 01 在 CentOS 7 中安装 MySQL

如果最后一列显示是 grep …,这个其实是刚刚执行的 grep 本身。

2026-04-13 19:00:00 522

原创 【C++】Lambda 表达式

本文介绍了C++中的匿名函数(Lambda表达式)及其核心组成部分。Lambda表达式的基本形式为捕获列表 -> 返回类型 {函数体},其中捕获列表控制外部变量访问方式,参数列表与普通函数一致,返回类型通常可省略(编译器自动推断)。重点讲解了捕获列表的多种方式:[]不捕获、[x]传值、[&x]传引用、[=]传值捕获所有变量、[&]传引用捕获所有变量等。文章通过代码示例演示了Lambda表达式的参数传递、返回类型自动推导规则,以及捕获外部变量的不同方法,帮助开发者灵活运用这一特性进行高效

2026-01-08 10:00:00 778

原创 【C++】 STL —— 基于算法竞赛

C++ STL vector 使用指南 本文介绍了C++ STL中的vector容器,包括初始化、常用方法和注意事项。 初始化: 一维vector:vector<int> a,可指定长度和初始值 二维vector:vector<vector<int>> v行列可变,或vector<int> v[5]行固定 支持拷贝初始化vector<int> b(a) 常用方法: 访问元素:front(), back(), at() 容量操作:size(), em

2026-01-07 17:30:00 1298

原创 【C++】数学相关算法

本文介绍了C++中数学相关算法的关键知识点,包括数据范围与算法选择、常用数学函数和数值算法。主要内容: 算法选择指南:根据数据规模(10^9以内用int,10^18用long long)和时间复杂度(O(n!)到O(logn))提供算法选择建议表,帮助快速匹配问题与解法。 数学函数库:总结<cmath>中常用函数如sqrt、pow、abs等,说明其功能、示例和注意事项(如sqrt参数需非负)。 数值算法:列举<algorithm>和<numeric>中的实用工具,包括ma

2026-01-07 11:00:00 1092

原创 【C++】STL简介

STL简介:C++标准模板库核心解析 STL(标准模板库)是C++标准库的核心组件,采用泛型编程思想,通过模板技术实现数据结构与算法的高度复用。其发展经历了HP、P.J.、RW和SGI四个主要版本,其中SGI版本因高可读性和开放性成为学习典范。 STL包含六大核心组件: 容器(如vector、list) 算法(如sort、find) 迭代器(连接容器与算法) 仿函数(函数对象) 适配器(如stack、queue) 空间配置器(内存管理) STL在笔试面试和实际开发中都具有重要价值,但也存在更新缓慢、线程安全

2026-01-06 18:30:00 616

原创 【C++】模板初阶

本文介绍了C++模板的概念及其应用。模板分为函数模板和类模板,能够实现与数据类型无关的通用代码,提高代码复用性。函数模板通过template<typename T>定义,支持自动类型推导和显式指定类型,可用于交换变量、多类型参数处理、动态内存分配等场景。类模板则允许创建通用的类结构。模板技术解决了函数重载带来的代码重复问题,使程序更灵活高效。文章通过代码示例展示了模板在变量交换、多类型处理、类型转换等方面的具体应用,并强调了模板在提升代码可维护性和扩展性方面的重要作用。

2026-01-06 08:30:00 946

原创 C、C++内存管理

本文详细解析了C/C++程序的内存分布及管理机制。首先通过实例代码分析了各类变量(全局变量、静态变量、局部变量、动态分配内存等)的存储位置,包括栈、堆、数据段(静态区)和代码段(常量区)的划分标准。随后系统阐述了C/C++内存区域的四大组成部分:代码段(存储可执行指令和只读常量)、数据段(存放全局/静态变量)、堆(动态内存分配区)和栈(函数调用时的临时存储区),并详细说明了各区域的功能特点、存储内容及生命周期管理方式。文章还通过具体题目解答了sizeof与strlen的区别,并提供了完整的变量存储位置分析表

2026-01-05 17:00:00 1574

原创 Ubuntu 22.04 中安装 thefuck 与 tldr 工具

本文介绍了在Ubuntu 22.04系统中安装两款实用终端工具的方法:智能命令纠错工具thefuck和简洁帮助文档工具tldr。详细说明了通过pip和apt两种方式安装thefuck的步骤,包括解决PATH环境变量问题;同时提供了tldr的安装流程,重点解决了网络超时和中文显示配置问题。文章还包含常见错误解决方案及工具使用技巧,如thefuck的递归纠正功能和tldr的平台指定查询方法。最后提供了官方文档参考链接,帮助用户进一步提升终端使用效率。

2026-01-05 12:40:30 1108

原创 058 从 Centos 切换到 Ubuntu

本文详细介绍了从CentOS切换到Ubuntu的完整流程,涵盖系统切换步骤、Xshell连接配置、用户权限设置以及Ubuntu软件包管理器APT的使用方法。重点内容包括:1. 系统镜像切换后的密码重置提醒;2. 创建普通用户并授予sudo权限的两种方式;3. CentOS与Ubuntu软件包管理器命令对比;4. 系统升级过程中的关键配置选择;5. GCC编译器的安装与版本管理。文章特别强调了数据备份的重要性,并针对Ubuntu特有操作(如apt命令、PPA源添加等)提供详细指导,帮助用户顺利完成系统迁移。

2025-11-21 12:00:00 1810 1

原创 057 高级 IO 之 epoll 详解与 CMake 入门

摘要 本文系统介绍了Linux系统中的epoll机制及其核心API的使用方法。主要内容包括: epoll的基本概念和优势:相比select/poll更高效,支持边缘触发,内存友好 epoll三大核心函数详解: epoll_create/epoll_create1:创建epoll实例 epoll_ctl:管理监听列表(添加/修改/删除文件描述符) epoll_wait:等待事件发生并获取就绪事件 参数说明和使用示例:包括epoll_event结构体的定义、事件类型标志位等 操作注意事项和最佳实践:如ET模式下

2025-11-20 17:30:00 1854 1

原创 056 高级 IO

可同时等待多个文件描述符,提高 IO 利用率。“等待”与“操作”分离,IO 操作本身不会被阻塞。实现简单,兼容性好,几乎所有平台都支持。缺点:fd 数量有限(通常上限 1024)。每次调用都要重置 fd 集合,使用繁琐。用户态到内核态频繁拷贝,开销大。内核遍历所有 fd检查状态,效率低。用户态也需维护 fd 集合,多次遍历,复杂度高。select 能多路等待,但机制老、开销大、扩展性差,设计比较久远,具有局限性,对初学者也并不友好,于是就有了Poll 的多路转接方案poll是对。

2025-11-20 08:30:00 1226

原创 055 其他重要协议和技术

本文介绍了DNS协议和ICMP协议这两项互联网核心技术。DNS协议负责域名与IP地址的转换,采用分层查询机制,通过dig工具可进行DNS诊断。ICMP协议作为IP协议的辅助协议,用于网络诊断与错误报告,支持ping和traceroute等常用网络工具。文章详细讲解了域名结构、DNS解析流程、ICMP报文类型及功能,并分析了浏览器访问URL的全过程,包括DNS解析、TCP连接建立、HTTP请求响应等关键步骤。最后介绍了ping命令的工作原理及traceroute路径追踪的实现方式。这些协议和技术共同构成了互联

2025-11-19 17:30:00 950

原创 054 数据链路层

数据链路层:以太网协议解析 核心概念对比 MAC地址:数据链路层使用,物理地址,本地有效(如快递员只认门牌号) IP地址:网络层使用,逻辑地址,全局有效(如物流中心处理跨城运输) 以太网工作原理 采用广播+识别+过滤机制: 主机广播发送带目标MAC的帧 所有主机接收但仅目标主机处理 其他主机直接丢弃非己帧 关键协作 ARP协议:动态解析IP到MAC的映射(如问"谁是192.168.1.10?") 路由器作用:跨网段时替换MAC头(保留不变的IP地址) 帧结构详解 字段 长度 作用 目标M

2025-11-19 08:30:00 1031

原创 053 网络层 —— IP 协议

本文摘要: IP协议是网络层核心协议,其地址采用网络号+主机号结构,通过子网划分提高地址利用率和管理效率。现代网络采用CIDR无类别路由,取代传统A/B/C类地址划分,通过子网掩码灵活定义网络范围。私有IP地址范围(如192.168.x.x)专供内部网络使用。IP报头标准20字节,包含版本、TTL、协议号等关键字段,其中TTL防环,协议号标识上层协议,校验和保护报头。子网划分案例显示如何将/24网络拆分为4个/26子网,每个支持62台主机。

2025-11-18 17:30:00 1130

原创 052 传输层 —— TCP(下)

摘要 本文深入解析了TCP协议中的流量控制和滑动窗口机制,旨在实现高效可靠的数据传输。 1. TCP流量控制 流量控制(Flow Control)防止发送方速率过快导致接收方缓冲区溢出。核心机制是接收窗口(Window Size),接收方通过TCP头部窗口字段告知剩余缓冲区空间,发送方据此调整发送速率。为支持高速网络,RFC 1323引入窗口缩放选项,理论最大窗口约1GB,但实际系统(如Linux、Windows)会限制为几MB。 2. 滑动窗口 滑动窗口允许发送方连续发送多个数据包而无需逐个等待确认,提升

2025-11-18 08:30:00 1174

原创 051 传输层 —— TCP(上)

TCP协议概述 TCP(传输控制协议)是面向连接、可靠的传输层协议,通过精细控制数据传输过程,确保数据可靠交付。其核心在于动态管理发送/接收缓冲区,实现流量控制、拥塞控制和差错恢复。 关键特性 可靠性:通过序号、确认号、重传机制保证数据有序、不丢失 缓冲区管理:发送方缓存未确认数据,接收方处理能力不足时可暂停发送 全双工通信:双方可同时收发数据 端口复用:通过16位端口号实现多应用并发通信 协议格式 TCP头部包含源/目的端口(各16位)、32位序号(标识字节流位置)、32位确认号(期望收到的下一字节),以

2025-11-17 17:00:00 978

原创 050 传输层 —— UDP

这篇文章讲述了传输层中的 UDP 协议,重点介绍了端口号与五元组通信模型,解释了为何需要五元组来唯一标识一条连接,并展示了如何使用 `netstat` 和`ss` 命令查看当前连接。文章还详细说明了端口号范围的划分,建议避开知名端口,并探讨了进程绑定多个端口以及端口被多个进程绑定的可能性。此外,文章介绍 `netstat` 和 `pidof` 命令的使用,解释了命令行参数转化问题,并简要提及了 `iostat` 工具用于查看磁盘和 CPU使用情况。

2025-11-17 08:00:00 826

原创 049 HTTPS 协议原理

HTTPS协议通过加密层保障数据传输安全,核心区别在于HTTP明文传输易被劫持篡改,而HTTPS采用加密技术保护信息。主要加密方式包括对称加密(高效但密钥分发困难)、非对称加密(安全但速度慢)及数据摘要(验证完整性)。数字签名结合摘要和非对称加密,确保数据来源和内容可信。HTTPS通过混合加密(如TLS握手)实现安全通信,解决了中间人攻击风险,广泛应用于隐私保护和支付安全等场景。

2025-10-30 12:00:00 1121

原创 048 HTTP 协议

HTTP协议是一种应用层协议,用于浏览器和服务器之间的通信,采用请求-响应模型。URL是资源定位符,包含协议、服务器地址、端口、路径等7个部分。特殊字符需通过urlencode转义。HTTP报文由请求行/状态行、头部、空行和可选的消息体组成。请求报文包含方法、目标URL和HTTP版本,响应报文包含状态码和原因短语。

2025-10-29 18:00:00 1802

原创 047 网络传输基础:TCP 连接建立与数据序列化

摘要:本文介绍了TCP协议通信流程中的“三次握手”和“四次挥手”机制,以及网络传输中的序列化与反序列化概念。 TCP连接建立(三次握手):客户端与服务器通过SYN、SYN+ACK、ACK三次交互确认双向通信能力,确保连接可靠建立。两次握手可能导致资源浪费,三次握手通过客户端最终确认避免无效连接。 TCP连接断开(四次挥手):由于TCP是全双工协议,双方需独立关闭发送通道。四次挥手确保数据完整传输,客户端等待2MSL(最大报文存活时间)以防止旧数据干扰新连接。 序列化与反序列化:网络传输需将数据转换为字节流(

2025-10-29 08:30:00 642

原创 046 网络编程套接字

本文介绍了网络编程的基础知识,包括IP地址、MAC地址和端口号的作用与区别,TCP与UDP协议的特点对比,以及网络字节序的概念。IP地址负责跨网络寻址,MAC地址用于局域网设备寻址,端口号标识主机内的应用程序。TCP提供可靠、有序的连接,而UDP则无连接、快速但不保证可靠性。网络字节序统一为大端格式,确保跨平台通信的一致性。这些概念是网络编程的基础,为后续套接字编程提供了理论支持。

2025-10-28 17:30:00 1313

原创 045 网络基础

这篇文章讲述了计算机网络的发展历程和基本原理,从起源的军事科研需求到现代的万物互联,计算机网络经历了五个关键阶段,包括ARPANET的诞生、TCP/IP协议的提出、从军事到学术的开放、万维网与浏览器的普及以及移动化、智能化与全场景渗透。文章还介绍了网络连接形态的演进,从独立模式到网络互联、局域网和广域网,以及网络协议的本质和分层概念。最后,文章详细解释了以太网通信原理、数据碰撞问题及解决机制,以及网络中的地址管理,包括IP与MAC的关系与区别。

2025-10-28 08:30:00 683

原创 044 深入线程安全:单例、智能指针与同步原语

文章摘要 本文深入探讨线程安全相关技术,涵盖单例模式、STL容器和智能指针的线程安全性,以及常见锁机制。单例模式分为饿汉式(启动即创建)和懒汉式(延迟加载),后者需处理线程安全问题,推荐C++11的局部静态变量实现。STL容器非线程安全,需手动加锁;智能指针中shared_ptr通过原子操作保证引用计数安全。最后对比悲观锁(先加锁)和乐观锁(无锁检查),分别适用于高冲突和低冲突场景。文章为开发者提供了线程安全实践的关键指导。

2025-10-27 16:00:00 816

原创 043 线程池与线程封装

本文介绍了基于C++实现的线程池核心组件ThreadPool.hpp,通过封装pthread库实现多线程任务调度。主要功能包括: 线程管理:使用ThreadInfo结构体存储线程ID和名称,通过pthread_create创建指定数量的工作线程,每个线程执行HandlerTask函数循环处理任务。 任务队列:采用STL队列存储任务模板类T,支持Push()添加任务和Pop()获取任务,通过互斥锁(pthread_mutex)保证线程安全。 同步机制: 条件变量(pthread_cond)实现任务通知 双检锁

2025-10-27 08:00:00 259

原创 042 生产者 - 消费者模型

本文介绍了生产者-消费者模型(CP问题),这是并发编程中的经典问题。该模型通过缓冲区作为中介,解耦生产者和消费者之间的直接依赖,提高系统的可扩展性和灵活性。文章通过"供货商-超市-消费者"的类比,解释了"3种关系、2种角色、1个交易场所"的"321原则",并提供了基于BlockingQueue的C++代码实现,展示了如何通过互斥锁和条件变量实现线程安全的同步机制。该模型适用于需要平衡生产速度和消费速度的场景,如消息队列、任务调度等。

2025-09-24 18:00:00 774

原创 041 深入理解线程间同步与互斥

线程访问共享资源,实现线程互斥。本文介绍了线程互斥的概念、临界资源与临界区的区别,并通过一个多线程抢票的示例程序展示了线程安全问题。当多个线程同时访问共享变量tickets时,由于缺乏同步机制,导致票数出现负数等数据不一致问题。文章进一步解释了互斥量和互斥锁的关系,强调需要用锁机制保护临界区代码,确保同一时间只有一个线程执行关键操作。通过合理使用互斥锁,可以避免数据竞争,保证多线程程序的正确性。(146字)

2025-09-24 08:00:00 1144

空空如也

空空如也

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

TA关注的人

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