Appearance
并发与运行时底座
模块目标
建立 Java / Kotlin / Dart / Flutter / JS / Go 的执行模型对照心智。
这是后续理解生命周期、后台任务、状态管理、性能和排障的底层基础。
本模块要回答的问题
- 线程到底是什么?
- 协程为什么不是线程?
- Future 为什么不是线程?
- isolate 到底是什么?
- event loop 如何工作?
- 共享状态为什么会出锁问题?
- Java / Kotlin / Dart / JS / Go 的并发模型分别适合什么?
子主题清单
01. Java 并发基础
总览
- [x] Java 并发模型总览
Java 专题拆分
- [x] ConcurrentHashMap(CHM)速览
- [x] Thread / Runnable / Callable / Future
- [x] ExecutorService / 线程池
- [x] synchronized / Lock / volatile
- [x] Atomic* / CAS / LongAdder
- [x] JMM:happens-before / 安全发布
- [x] 死锁 / 活锁 / 竞态定位
说明:总览负责建立概念地图;专题文档负责展开细节、代码示例、选型边界与排障思路。
02. Kotlin 协程模型
- [x] Kotlin 协程:挂起 / Continuation / Dispatcher / Mutex / StateFlow
- [x] Dispatchers.Main / IO / Default(已并入协程主文档)
- [x] withContext / launch / async(已并入协程主文档)
- [x] CoroutineScope / SupervisorJob / 取消传播(已并入协程主文档)
- [x] Flow / StateFlow / SharedFlow / Channel(已并入协程主文档)
- [x] Mutex / actor 风格(Mutex 已并入;actor 可后续补专门对照)
03. Dart 并发模型
- [x] Dart event loop / microtask / event queue / Future / isolate
- [x] Future / Stream(Future 已纳入;Stream 在文中已有定位,后续可独立扩充)
- [x] isolate / compute(isolate 已纳入;compute 可在 Flutter 侧补宿主化对照)
- [x] 为什么 Future 不是线程
- [x] 什么时候一定要用 isolate
04. JS 与 Go 对照
- [x] JS Promise / event loop / Worker
- [x] Go goroutine / channel / context
- [ ] Java / Kotlin / Dart / JS / Go 跨语言总对照表(建议后续单独成文或补进 README)
推荐复习顺序
- Java 并发模型总览
- Java 专题拆分(线程与任务 → 线程池 → 同步原语 → JMM → 问题定位)
- Kotlin 协程挂起恢复
- Dart Future / event loop / isolate
- JS event loop / Worker
- Go goroutine / channel
- 最后做一张跨语言对照表
对应 labs 入口
- Java:
labs/java/runtime-concurrency/ - Kotlin:coroutine-execution-flow(最小 Main → IO → Main 执行链)
- Kotlin:coroutine-mutex-stateflow(Mutex / StateFlow / SharedFlow)
- Dart:dart-event-loop-isolate · event_loop_isolate_demo.dart
- JS / Node:后续建议补
labs/node/runtime-concurrency/ - Go:后续建议补
labs/go/runtime-concurrency/
备注
这个模块的主线文档已经够用于系统复习;后续更适合按你自己的节奏去亲手补 labs、改 demo、加日志与错误场景,这样记忆会更牢。