0%

思维导图之Java并发

一、思维导图之Java并发

二、并发源码阅读说明

阅读“源码”很难,阅读“并发源码”更难,因为“并发源码”相对“非并发源码”需要考虑更多细节,比如“以CAS自旋形式实现乐观锁”的并发源码。

2.1、明确阅读目标

阅读“并发源码”时,首先须明确阅读目标:

  • 目标是“理解核心基本流程”,那么就没必要追究太多细节,比如“阅读AQS”,“阅读Exchanger”
  • 目标是“彻底掌握”,那么就不只需要理解,也要追究清楚所有细节,即便需要花费很多时间和精力

2.2、具体阅读指南

并发源码阅读指南:阅读源码主体,需要考虑到“可见性”、“有序性”和“原子性”这3个问题,可使用语言提供的语义确保机制和隐含的内存屏障,比如:

  • volatile关键词语义
  • final关键词语义
  • volatile变量写操作之前有LoadStore和StoreStore内存屏障
  • volatile变量读操作之后有LoadStore和LoadLoad内存屏障
  • happens-before规则,使用happens-before规则进行分析最简单,但小心不要踩“混用”的坑,可参见《happens-before规则》中的“5.1、例子1”小节
您的支持将鼓励我继续分享!