首页
文章列表
标签墙
返回找工具啦
锁机制
共 9 篇文章
Go sync.Cond 为什么必须在 Wait 前加锁与伪唤醒的防范
2026-05-24 03:13:13
Go sync.Cond 为什么必须在 Wait 前加锁与伪唤醒的防范 Go 语言的 sync.Cond 是一个强大的同步原语,用于在共享状态发生变化时通知等待的 goroutine。然而,它的使用比 mutex 和 channel 更容易出错。本文将直接剖析两个核心问题:为什么 Wait 方法调用
Go语言
sync.Cond
Wait方法
8
0
Java 偏向锁到轻量级锁的升级条件与撤销开销
2026-05-17 15:22:40
Java 偏向锁到轻量级锁的升级条件与撤销开销 Java 对象头中的 Mark Word 是锁状态实现的核心。偏向锁设计初衷是为了优化同一线程反复获取锁的场景,但在多线程竞争出现时,必须升级为轻量级锁。这一过程并非毫无代价,理解其触发条件与撤销开销,是进行高性能 Java 并发编程的必修课。 1.
Java并发
锁机制
偏向锁
23
0
Java Thread.sleep与Object.wait的锁释放行为差异
2026-05-06 21:15:51
Java Thread.sleep与Object.wait的锁释放行为差异 Java 多线程编程中,控制线程暂停的两种最常见方式是 Thread.sleep 和 Object.wait。虽然它们都能让线程停止运行,但在锁的释放行为上有着本质的区别。理解这一差异对于避免死锁和提高并发性能至关重要。 1
Java
多线程
并发编程
43
0
Java StampedLock.validate在乐观读后的验证机制
2026-05-05 03:14:00
Java StampedLock.validate在乐观读后的验证机制 StampedLock 是 Java 8 引入的锁机制,它的核心优势在于支持“乐观读”。乐观读假设在读取数据时没有写操作发生,因此不需要阻塞写线程,也不需要通过 CPU 内存屏障来强制同步缓存,性能极高。但这种假设是有风险的,必
Java并发
乐观读
验证机制
45
0
Java ReentrantLock的公平锁与非公平锁性能差异实测
2026-04-25 05:21:49
Java ReentrantLock的公平锁与非公平锁性能差异实测 Java并发包中的ReentrantLock提供了两种锁获取模式:公平锁与非公平锁。了解两者的性能差异对于编写高并发程序至关重要。虽然公平锁听起来更符合直觉,但在实际的高性能场景中,非公平锁往往才是默认且更优的选择。 1. 理解核心
Java
ReentrantLock
并发编程
58
0
MySQL Online DDL在线修改表结构的原理与限制
2026-04-21 23:29:23
MySQL Online DDL在线修改表结构的原理与限制 在生产环境中维护数据库时,直接对大表执行 ALTER TABLE 往往意味着风险。传统的修改方式会导致表被锁定,甚至阻塞所有的读写请求。MySQL 提供的 Online DDL(在线定义表结构)功能旨在解决这个问题,让修改表结构尽量不影响业
MySQL
在线DDL
表结构修改
50
0
MySQL InnoDB行锁与表锁的加锁规则
2026-04-20 00:25:14
MySQL InnoDB行锁与表锁的加锁规则 InnoDB 存储引擎支持行锁和表锁,但为了保证高并发下的数据一致性,其加锁逻辑非常复杂。理解这些规则,能帮助你快速定位死锁原因或优化锁等待。 一、 理解基础锁模式与兼容性 在深入具体规则前,先弄清楚两种核心锁类型及其兼容关系。如果不理解兼容性,就无法判
MySQL
InnoDB
行锁
66
0
Go 互斥锁:sync.Mutex 与 sync.RWMutex
2026-04-12 11:23:28
Go 互斥锁:sync.Mutex 与 sync.RWMutex 并发编程中,多个协程同时访问共享数据会导致数据竞争。Go 语言提供了 sync.Mutex 和 sync.RWMutex 两种锁机制来解决这个问题。以下指南将直接展示如何选择和使用这两种锁。 1. 基础互斥锁:sync.Mutex s
Go语言
并发编程
互斥锁
69
0
Python 多线程:threading 模块与锁机制
2026-04-07 00:12:26
Python 多线程:threading 模块与锁机制 1. 打开 代码编辑器或集成开发环境,新建 空白文件并 保存 为 threadinglock.py。 2. 引入 标准库模块。在文件首行 输入 import threading 与 import time。threading 提供线程控制接口,
多线程
锁机制
线程同步
85
0