Java 锁分类
2022-01-19 17:34:45 0 举报
AI智能生成
详细描述java中的锁分类
作者其他创作
大纲/内容
synchronized
ReadWriteLock
ReentrantLock
ReentrantReadWriteLock
悲观锁
加锁
CAS机制
版本号机制
Stampedlock
乐观锁
不加锁
线程是否需要对同步资源进行加锁?
阻塞
SpinLock
TicketLock
CLHLock
MCSLock
自旋锁
适应性自旋锁
不阻塞
对同步资源加锁失败,线程是否需要阻塞?
FairSync
ReentrantLock(true)
公平锁
排队
NonFairSync
ReentrantLock(false)
非公平锁
先插队,插队失败再排队
多线程竞争锁时是否需要排队?
可重入锁
可以
AQS机制
不可重入锁
不可以
同一线程中多个流程之间是否可以获取同一个锁?
ReentrantReadWriteLock的读锁
共享锁
ReentrantReadWriteLock里的写锁
排它锁(独占锁)
多线程是否可以共享同一个锁?
无锁操作
不对资源加锁,多线程中只有一个可以对资源修改成功,其他只能重试
偏向锁
同一线程竞争同步资源时自动获取锁
Lock
轻量级锁
多线程竞争同步资源时,未获取到同步资源的线程通过自旋等待锁释放
重量级锁
多线程竞争同步资源时,未获取到同步资源的线程通过阻塞等待唤醒
多线程竞争同步资源的细节差异
Java锁分类
0 条评论
回复 删除
下一页