《石杉的架构笔记》学习笔记

《石杉的架构笔记》的学习笔记

*** 说明:本笔记为学习了石杉老师的《石杉的架构笔记》的总结和记录,其中的图也是用的老师的原图,本文仅仅用于本人做学习笔记,想了解更多更详细内容,请自行找石杉老师的原版书籍学习。 ***

volatile

  • volatile每次读变量都会先从主内存取值,同时强制刷新工作内存内的值(即读值以主内存的值为准)。

  • volatile每次写变量都会先更新工作内存,然后强制同步刷新到主内存(即写的时候,保证主内存和工作内存都更新为新的值)

    image-20211122152242973

CAS

  • CAS全称Compared And Set,先比较后设置的意思。Atomic类的底层原理就是用CAS。开始先取得一个值,做完操作后,设置之前先跟开始时取得的值比较,前后一致才设置,否则自旋重复第一步操作。是实现Atomic 原⼦类的底层原理。

    image-20211122150725296

  • 为了解决CAS大量空转问题,java8新增一个LongAdder类,使用CAS加分段迁移提高并发量

image-cas-java8

AQS

  • AQS全称AbstractQueuedSynchronizer,是实现ReentrantLock类的底层原理。

ReentrantLock


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!