首页
学习
活动
专区
圈层
工具
发布

#

一个"加锁无效"的诡异现象

码事漫谈

在服务端开发中,多线程并发处理客户端请求是提升系统吞吐量的常见手段。最近有位开发者朋友遇到了一个令人费解的问题:他的服务端通过管道与客户端通信,每接收一个客户端...

21706

MySQL中的索引详解

Eulogy

我们使用的MySQL的innodb引擎就是使用的B+树索引,Memory引擎使用的是hash索引。

22120

MySql中的锁

Eulogy

有了意向锁之后,线程在使用DML语句加上行锁的时候,也会对整个表加上一个意向锁,这样别的线程再来上表锁的时候,就会先去检查与这张表的意向锁的兼容情况,如果兼容的...

14020

多线程同步机制:深入解析互斥锁的原理与实践

码事漫谈

当一个线程尝试获取互斥锁时,如果锁是可用的,线程将获得锁并继续执行;如果锁已经被其他线程占用,当前线程将被阻塞,直到锁被释放。

31810

MESI 缓存一致性协议

莫他喵

CPU 访问内存数据时,拷贝一块连续的“缓存行”到 cache 中,再操作 cache 中的数据;cache 中的数据再在需要时同步回内存。(扩展:存在 “伪共...

20310

OpenHarmony 内核源码分析(内核态锁篇) | 如何实现快锁Futex(下)

小帅聊鸿蒙

当用户态产生锁的竞争或释放需要进行相关线程的调度操作时,会触发Futex系统调用进入内核,此时会将用户态锁的地址传入内核,并在内核的Futex中以锁地址来区分用...

10620

OpenHarmony 内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)

小帅聊鸿蒙

Futex(Fast userspace mutex,用户态快速互斥锁),系列篇简称 快锁 ,是一个在Linux上实现锁定和构建高级抽象锁如信号量和POSIX互...

20320

synchronized 的锁升级机制详解

麦辣鸡腿堡

synchronized 是 Java 中实现线程同步的核心机制,其锁状态会随着竞争激烈程度动态升级,以提高并发性能。从 无锁 到 重量级锁 的升级过程包括四个...

39510

MySQL进阶突击系列(06)MySQL有几种锁?| 别背答案,现场演示一下

拉丁解牛说技术

说到数据库锁,我们最常见的、最先想到的是行锁、表锁。MySQL 的InnoDB存储引擎,支持行级锁,而MYISAM支持的是表级锁。这个锁粒度的区别,让InnoD...

27820

解"锁"疑惑:偏向锁为什么不是锁?锁升级又是什么?何时禁用偏向锁和轻量级锁?重量级锁怎么回事?

程序视点

相比起轻量级锁,再膨胀的锁,一般称之为重量级锁,因为是依赖于每个对象内部都有的monitor锁来实现的,而monitor又依赖于操作系统的MutexLock(互...

13810

解"锁"疑惑:偏向锁为什么不是锁?锁升级又是发生的?何时禁用偏向锁和轻量级锁?

程序视点

“偏向锁”是Java在1.6引入的一种优化机制,其核心思想在于,可以让同一个线程一直拥有同一个锁,直到出现竞争,才去释放锁。

17010

面试:什么是死锁,如何避免或解决死锁;MySQL中的死锁现象,MySQL死锁如何解决

寻求出路的程序媛

死锁(Deadlock)是指两个或两个以上的线程(或进程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去,此时称系统处于...

83910

MySQL的悲观锁和乐观锁

写bug的高哈哈

在分布式系统的大环境下,各种锁机制扮演着重要角色:从宏观的分布式锁到微观的代码锁,再到数据库层面的锁。尽管锁的类型繁多且复杂,但它们的核心功能是一致的:确保在某...

31610

JAVA锁

羽毛球初学者

Java 标准库提供了 ReentrantReadWriteLock 类, 实现了读写锁。ReentrantReadWriteLock.ReadLock 类表示...

13200

掌握死锁检测:策略和最佳实践

Lion 莱恩呀

如下图所示,线程 A 想获取线程 B 的锁,线程 B 想获取线程 C 的锁,线程 C 想获取线程 D 的锁,线程 D 想获取线程 A 的锁,从而构建了一个资源获...

25110

并发问题解密:探索多线程和锁机制

Lion 莱恩呀

互斥锁的属性在创建锁的时候指定,在实现中仅有一个锁类型属性,不同的锁类型在试图对一个已经被锁定的互斥锁加锁时表现不同。

42410

JAVA并发编程系列(4)一文看懂全部锁机制

拉丁解牛说技术

曾几何时,面试官问:java都有哪些锁?小白,一脸无辜:用过的有synchronized,其他不清楚。面试官:回去等通知!

35220

【多线程与高并发】- 锁的机制与底层优化原理

怒放吧德德

最近经常研究一些关于线程并发的问题,再开发中也实实在在遇到过许多的并发问题,之前所学的是如何解决这些问题,然而接下来就得理解一下底层原理。

33110

Java锁概论

Surriento

Java中的锁主要用于保障多并发线程情况下数据的一致性。在多线程编程中为保障数据一致性,我们常需要在使用对象或方法之前加锁。这时若有其他线程也需要使用此对象或該...

13010
领券