乒乓智能科技二面经历
创始人
2025-05-29 01:47:50
0

redis 可重入锁了解吗?

1 可重入锁的需求

单纯的 Redis 分布式锁仍然有些场景不满⾜的,如⼀个⽅法获取到锁后,可能在⽅法内继续调这个⽅法,就获取不到锁了。这时就要把锁改进成可重⼊锁。

重⼊锁,是以线程为单位,当⼀个线程获取对象锁后,该线程还可再次获取该对象上的锁,⽽其它线程不可以。可重⼊锁是为防⽌死锁。

注:在java的编程中synchronized 和 ReentrantLock都是可重入锁。

2 实现原理

为每个锁关联⼀个请求计数器和⼀个占有它的线程。当计数为0,认为锁未被占有。

线程请求⼀个未被占有的锁时,JVM将记录锁的占有者,并将请求计数器置1。

若同⼀线程再请求该锁,计数将递增
每次占⽤线程退出同步块,计数器值将递减。直到计数器为0, 锁被释放

⽗类和⼦类的锁的重⼊:⼦类重写⽗类的 synchonized ⽅法,然后调⽤⽗类中的⽅法,此时若没有重⼊锁,这段代码将死锁。

redis 可重入锁

如下图使用redisson加锁后会在redis中创建一个hash类型的数据,其中redisKey是order,key是线程的线程id+线程获取锁的次数,value是线程获取锁的次数。
在这里插入图片描述

百万转账并发

redis首先记录抗住并发,然后多线程将redis的记录同步到mysql,最后再使用业界熟悉的本地事务+mq消息表进行消费,来保证最终一致性。

相关内容

热门资讯

北方华创,巨额商誉压力突然高悬... 文丨詹詹编辑丨百进来源丨新商悟(本文约为 1300字)当国内半导体设备龙头北方华创交出一份“营收创历...
长城华西银行原女掌门已回老东家... 湘财Plus注意到,四川银行入主长城华西银行后,该行核心管理人员调整基本落定,法定代表人已正式变更为...
立案,跌停!这家“童年记忆”,... 沉浮多年,方向何在?最近被立案的上市公司,着实有些多,就在上周末,又有一家上市公司及原董事长被立案调...
加码生态环境监测!生态环境部:... 本文来源:时代周报 作者:李杭4月27日,生态环境部举行4月例行新闻发布会。 生态环境部4月例行新...
东方甄选主播“离职潮”持续发酵... 红星资本局4月27日消息,东方甄选(01797.HK)主播“离职潮”事件仍在发酵。在社交平台上,有部...
SpaceX万亿IPO前夜:马... 从20亿美元收购,到万亿IPO前的最后叙事。2026年4月23日深夜,特斯拉向SEC提交了一份季报文...
前董事长陆宏达“闪电辞职”牵扯... 紧急澄清前董事长性侵指控后,智度股份仍难挡股价大跌。4月27日,智度股份早盘一度重挫逾9%,逼近6....
高盛:一场全球性化工危机正在爆... 霍尔木兹海峡通行受阻,正在引发一场史无前例的全球化工供应冲击。高盛最新报告表示,基础化工品价格近几周...
这笔400亿,谷歌买的不是友谊... 4月25日,Anthropic宣布谷歌将向其投资最高400亿美元——先期注入100亿美元现金,估值3...
粪坑,爬出来了 粪坑,爬出来了... 图:Simon Bailly 读者说:“有人发现吗?2019年蚂蚁的大热基金鹏华快回本了,当年最高回...