第2章Java并发机制的底层实现原理-(java并发编程艺术读书笔记)

2.1 volatile的应用

2.2 synchronized的实现原理与应用

2.2.1 Java对象头

2.2.2 锁的升级与对比

2.3 原子操作的实现原理

 

 笔记

volatile的应用

volatile是轻量级的synchronized锁

内存屏障:是一组内存指令,用于限制对内存操作的顺序。

volatile的写可见性

volatile修饰的共享变量在进行写操作时,在汇编中会多出一行lock指令

1、将当前处理器缓存行的数据写回到主内存中。

2、会让其他cpu里缓存了该内存地址的缓存数据行无效。

 

cas高效解决原子操作

compare and swap

在操作一个数时,先拿旧值和当前的内存中的值进行比较,若是相同则用新值去替换,

若不相同则说明中间被人修改了,则不替换,循环的再去进行

 

cas缺点:

1 ABA问题

2 循环的时间太长

3 只能保证一个共享变量的原子操作性

 

View Code

 

posted @ 2021-06-04 15:43  弱水三千12138  阅读(47)  评论(0编辑  收藏  举报