锁概述

在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。

锁相关概念

分类

相关阅读:

自定义锁工具

1 :Redis 分布式锁(简单实现)

使用 ThreadLocal 保存锁对应的唯一标识
加锁:使用 STRING 保存锁定标识, 'SET key value PX NX' 确保一个 key 只能加锁一次
解锁:Lua 脚本判断是自己加的锁进行释放

2 :Redis 分布式锁

使用 ThreadLocal 保存 锁key 与 相应的唯一标识
加锁:使用 HASH 保存锁标识与加锁次数
解锁:Lua 脚本判断是自己加的锁进行释放
功能:可重入(Redis HASH)、支持对不同 key 进行加解锁(ThreadLocal<Map<String, String>>)

其他

demo 地址:https://github.com/EastX/java-practice-demos/tree/main/demo-lock

发表回复