首页/新闻资讯/正文详情

各种锁的分类讲解

发布时间:2026/9/26 11:13:28 来源:云帆数科 栏目:资讯中心
各种锁的分类讲解
使用各种锁的过程中由于种类太多分不清各种锁到底是什么层面的、底层逻辑有很多很像但是为什么要有这么多种下面按不同视角进行区分视角 1【作用域视角】JVM 内锁进程内锁同一个 JVM多线程之间。 synchronized、ReentrantLock、读写锁、StampedLock、Semaphore、CAS数据库锁数据库引擎层面数据库服务内部多个事务之间。 表锁、行锁、间隙锁、临键锁、意向锁、MDL 元数据锁、全局锁分布式锁跨进程 / 跨机器多个不同 JVM、不同服务实例、集群之间互斥。 Redis 锁、ZK 锁、etcd 锁、数据库实现的分布式锁视角 2【并发思想视角悲观 / 乐观】悲观锁默认一定会发生并发冲突访问资源前先上锁阻止别人进来。JVMsynchronized、ReentrantLockMySQLfor update 行 X 锁、lock in share mode 行 S 锁、表锁分布式Redis/ZK 分布式锁乐观锁认为冲突很少不上阻塞锁提交的时候校验冲突失败重试。JVMCASAtomic 系列、LongAdderMySQL业务 version 版本号乐观锁视角 3【访问权限视角共享 / 排他】锁的行为规则定义拿到锁之后其他人能不能读 / 写排他锁X 锁写锁持有者独占别人读、写全部阻塞 synchronized、ReentrantLock、for update 行锁、MDL 写锁、Redis 分布式锁共享锁S 锁读锁多个持有者可以同时持有写操作会阻塞 ReentrantReadWriteLock 读锁、lock in share mode、MDL 读锁组合读写锁 一把锁内部包含「共享读锁 排他写锁」视角 4【锁粒度视角】数据库锁专属视角控制锁多少数据只用于 MySQL InnoDB全局锁锁整个实例所有表表级锁锁整张表普通表 S/X 锁、意向锁 IS/IX、MDL 元数据锁行级锁锁索引记录记录锁 Record Lock锁一条记录间隙锁 Gap Lock锁索引之间的空隙RR 级别防幻读临键锁 Next-Key Lock 记录锁 间隙锁RR 默认行锁算法视角 5【锁的能力特性视角】附加属性所有锁通用标签这一组是属性标签给锁打勾不是分类。可重入同一个持有者可以多次加锁synchronized、ReentrantLock、Redisson 锁 ✅StampedLock、原生 ZK 锁 ❌公平 / 非公平公平 排队先来先得非公平 允许插队吞吐更高可中断等待锁的时候可以响应线程中断ReentrantLock ✅synchronized ❌支持超时获取tryLock (time)拿不到锁不等了视角 6【实现层面内核锁 vs 业务逻辑锁】底层内核锁操作系统 / JVM / 数据库引擎原生提供操作系统内核参与阻塞。 synchronized、ReentrantLock、MySQL 行锁表锁业务逻辑锁没有底层阻塞锁完全靠业务代码、中间件 API 实现。 CAS、版本号乐观锁、Redis 分布式锁、ZK 分布式锁关键理解不要把「视角」和「锁实体」混在一起举个例子拆解你感受多维标签InnoDB Next-Key 临键锁视角 1作用域数据库锁视角 2思想悲观锁视角 3权限排他锁视角 4粒度行锁Next-Key特性不可重入只在 RR 隔离级别生效

相关推荐

联合 查询
联合 查询

为什么要联合查询 ?有时为了查询一个完整的数据, 需要从多个表中同时获取数据数据库是怎么联合查询的 ?在使用联合查询时,数据库获取参与查询的表的笛卡尔积,并把结果汇聚到一个临时表中1. 笛卡尔积笛卡尔积&#xff1… · 2026/9/26 11:13:28

从碎片化到标准化:案例详解 MCP 如何重塑 AI Agent 开发生态?TaoToken 统一 Key 通道配置实战
从碎片化到标准化:案例详解 MCP 如何重塑 AI Agent 开发生态?TaoToken 统一 Key 通道配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:13:28

消费电子做海外社媒引流,为什么关键词矩阵布局比数据化渠道筛选更划算
消费电子做海外社媒引流,为什么关键词矩阵布局比数据化渠道筛选更划算

摘要:本文围绕消费电子类企业海外社媒引流,从效果归因切入,给出关键词矩阵布局与数据化渠道筛选的配合方法、3项可量化判断指标及执行清单,并解答常见问题,帮助读者用可衡量方式评估引流效果。TL;DR:关键词… · 2026/9/26 11:13:21

领英成为AI问答新来源:身份信用与一线经验的结合
领英成为AI问答新来源:身份信用与一线经验的结合

最近跟几个做AI的朋友聊天,发现一个反直觉的共识:大家现在遇到人工智能相关的问题,第一反应不是去传统的技术问答社区,也不完全是问AI助手,而是先去领英上搜一圈。用他们的话说,领英正逐渐变成人工智能问答… · 2026/9/26 11:47:20

K8s Resource深度解析:从资源配额到RBAC权限与403排查
K8s Resource深度解析:从资源配额到RBAC权限与403排查

1. 先搞明白Resource到底在说什么刚接触Kubernetes的同学,十有八九会被Resource这个词搞懵。它不是单一概念,而是一整套贯穿集群运行机制的设计。Kubelet、Scheduler、API Server、RBAC权限模型、甚至前端页面的静态文件,全都和Resource相关。… · 2026/9/26 11:47:20

Notepad++主题定制深度指南:Scintilla样式机制与实战避坑
Notepad++主题定制深度指南:Scintilla样式机制与实战避坑

简介:本资源是一套专为Notepad用户定制的29款高质量主题集合,适用于前端开发、代码编辑及日常文本处理场景,尤其适合追求个性化编辑界面与提升编码舒适度的中初级开发者。压缩包内全部为.stylers.xml格式的主题配置文件,共29个&am… · 2026/9/26 11:47:20

Notepad++主题配置与定制实战指南
Notepad++主题配置与定制实战指南

简介:本资源是一套专为Notepad用户定制的29款高质量主题集合,适用于前端开发、代码编辑及日常文本处理场景,尤其适合追求个性化界面与高效编码体验的程序员、学生及技术爱好者。压缩包内全部为.stylers.xml格式的主题配置文件,共2… · 2026/9/26 11:47:20

Resource报错排查指南:前端、后端与K8s语境下的资源问题全解析
Resource报错排查指南:前端、后端与K8s语境下的资源问题全解析

接手过一个让人抓狂的问题:同事的页面在浏览器里打开,控制台刷了一排 failed to load resource ,有的是 403,有的是超时,还有一条诡异的 content unavailable. resource was not cached 。细看这些报错&#xff0c… · 2026/9/26 11:47:20

DeepSeek-V4-Pro-0813 API 更新速览:官方参数、价格与 Codex 接入成本计算
DeepSeek-V4-Pro-0813 API 更新速览:官方参数、价格与 Codex 接入成本计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 11:47:13

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码