spring boot

并发--线程和锁

2019-03-31  本文已影响77人  简书徐小耳

线程调度

协同式调度

抢占式调度(JAVA使用的是这种方式)

os调度cpu有全局队列和局部队列

对于sun jdk 都是一个java线程对应一个内核线程(轻量级进程)

线程调度

协同式调度

抢占式调度(JAVA使用的是这种方式)

os调度cpu有全局队列和局部队列

对于sun jdk 都是一个java线程对应一个内核线程(轻量级进程)

Synchronized的优化

synchronized的锁策略

Java SE 1.6中,锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却不能降级的策略,目的是为了提高获得锁和释放锁的效率

自旋锁和自适应自旋

锁消除

锁粗化

轻量级锁

偏向锁

synchronized几种锁转化方式

对象头

mark word

指向方法区对象类型数据的指针(如果是数组对象还会额外用于存储数组长度)

JAVA对象包含的三部分(hotspot)

对象头
Mark Word

类型指针

实例数据

对齐填充

synchronized的原理

自旋锁和自适应自旋

锁消除

锁粗化

轻量级锁

偏向锁

synchronized几种锁转化方式

对象头

mark word

指向方法区对象类型数据的指针(如果是数组对象还会额外用于存储数组长度)

JAVA对象包含的三部分(hotspot)

对象头
Mark Word

类型指针

实例数据

对齐填充

上一篇下一篇

猜你喜欢

热点阅读