JAVA锁分类
2022-07-07 09:40:18 21 举报
AI智能生成
JAVA锁分类
作者其他创作
大纲/内容
synchronized
ReadWriteLock
ReentrantLock
ReentrantReadWriteLock
悲观锁
锁住
CAS机制
版本号机制
StampedLock
乐观锁
不锁住
线程要不要锁住资源?
ReentrantReadWriteLock的读锁
共享锁
可以
ReentrantReadWriteLock的写锁
独占锁/排他锁
不可以
多线程等否共享一把锁
FairSync
ReentrantLock(true)
公平锁
排队
NonFairSync
ReentrantLock(false)
非公平锁
先尝试插队,插队失败再排队
多线程竞争时是否排队
可重入锁
AQS机制
不可重入锁
同一线程是否可以重复获取同一把锁
可中断锁
非可中断锁
是否可中断
SpinLock
TicketLock
CLHLock
MCSLock
自旋锁
适应性自旋锁
非阻塞
非自旋锁
阻塞
等锁的过程
此状态不锁资源,多个线程只有一个线程能够修改资源成功,其他的线程会进行重试
无锁
同一个线程执行同步资源时会自动获取该资源
偏向锁
当多个线程竞争同步资源时,没有获取到资源的线程会进行自旋等待锁的释放
Lock
轻量级锁
当多个线程竞争同步资源时,没有获取到资源的线程会被阻塞等待唤醒
重量级锁
多线程竞争同步资源的细节差异
JAVA 锁的分类
0 条评论
回复 删除
下一页