纸白微明,未成篇章。
3 篇文稿
ConcurrentHashMap底层原理 jdk1.7是数组加链表,它在对象中保存了一个Segment数组。每个Segment元素类似于一个Hashtable;这样,在执行put操作时首先根据hash算法定位到元素属于哪个Segment,然后对该Segment加锁即可,不同的Segment可以并发put。而Segment的锁实现其实是ReentrantLock jdk1.8则是采用了数组+链表/
Volatile原理
Synchronized 与 ReentrantLock 的区别 :隐式锁,JVM 自动加锁 / 释放锁 :显式锁,需要手动 / ReentrantLock 本质上是基于 AQS 实现的。 synchronized是非公平锁 然后ReentrantLock 有公平锁有非公平锁 ReentrantLock 支持中断 还有超时获取锁 | | synchronized | ReentrantLock |