也可以称为:「并发编程」的全景图

分工

并发编程的核心问题 - 图1

同步

并发编程的核心问题 - 图2

互斥

提示:同步 & 互斥的本质是相同的。本质都是操作的执行需要满足一定的前提条件,不满足执行条件的线程需要被阻塞,等到线程满足执行条件时再被唤醒。

这里分开写,只是为了避免思维导图过大,导致字体太小看不清楚。

并发编程的核心问题 - 图3

并发问题的解决方案

避免写

  • Immutability 模式
  • Copy-on-Write 模式

避免共享

  • 线程本地存储模式(ThraedLocalStorage、TLS)
  • 局部变量
  • Actor 模型
  • CSP 模型

  • 无锁原子 CAS

  • 互斥锁