1. 三种执行环境
- MainActor = 主线程(主队列),专门跑 UI
- 自定义 Actor = 你的串行队列,负责线程安全、保护数据
- 系统全局并行池 = 后台公共并发队列,无 Actor、可并行
2. 四种任务怎么跑
- Task { }继承当前环境,不自动去后台主线程里写 → 还在主线程作用:从同步世界进入异步世界
- **Task.detached { }**脱离一切环境,直接去后台并行无 Actor、无继承
- async let / group.addTask { }****自动离开当前 Actor,去后台并行天生就是为了并发执行,不管你在哪创建
3. 线程谁决定?
- await 不切线程
- 切线程的是:Actor、系统 API、TaskGroup、async let
- 任务跑完,会自动回到原来的 Actor / 线程
4. 一句话串起全部
Actor = 串行队列保安全,TaskGroup/async let = 并行队列搞并发,Task 是进门,detached/async let/addTask 是后台,MainActor 是主线程,全局池是无主后台。