JUC
· 11 min read
自旋锁->
自旋N次(N自适应, 取决于先前历史,当前负载等)->
升级为重量 级锁
重量级, mutex 本质上的syscall, 轻量级, CAS去尝试拿到对象头中的锁标识字节MarkWord
更新成功说明没人抢
偏向锁: 当某个线程第一次获取锁时, 接下来都没有其他线程拿, 那这个线程后续拿锁就连CAS也不需要
无锁->
偏向锁->
自旋锁->
重量级锁
JMM
所有可能出现竞争的变量(成员, 静态等)均在主内存
局部变量线程私有, 工作内存相互隔离, 只能通过主内存同步
volatile
需要立即看到修改的值, 每一次读取都从主线程读, 每一次写都把工作内存的值刷新到主线程