本文来聊下Java中的各种锁
锁概述
本文来聊下Java中的各种锁,彻底理解Java中的各种锁。
Java中的各种锁
序号 | 锁名称 | 应用 |
---|---|---|
1 | 乐观锁 | CAS |
2 | 悲观锁 | synchronized、vector、hashtable |
3 | 自旋锁 | CAS |
4 | 可重入锁 | synchronized、Reentrantlock、Lock |
5 | 读写锁 | ReentrantReadWriteLock,CopyOnWriteArrayList、CopyOnWriteArraySet |
6 | 公平锁 | Reentrantlock(true) |
7 | 非公平锁 | synchronized、reentrantlock(false) |
8 | 共享锁 | ReentrantReadWriteLock中读锁 |
9 | 独占锁 | synchronized、vector、hashtable、ReentrantReadWriteLock中写锁 |
10 | 重量级锁 | synchronized |
11 | 轻量级锁 | 锁优化技术 |
12 | 偏向锁 | 锁优化技术 |
13 | 分段锁 | concurrentHashMap |
14 | 互斥锁 | synchronized |
15 | 同步锁 | synchronized |
16 | 死锁 | 相互请求对方的资源 |
17 | 锁粗化 | 锁优化技术 |
18 | 锁消除 | 锁优化技术 |
各种锁描述
乐观锁
悲观锁
自旋锁
可重入锁(递归锁)
读写锁
公平锁
非公平锁
共享锁
独占锁
重量级锁
轻量级锁
偏向锁
分段锁
互斥锁
同步锁
死锁
锁粗化
锁消除
synchronized
Lock和synchronized的区别
ReentrantLock 和synchronized的区别
本文小结
本文详细介绍了java开发中可能会遇到的各种锁。