Swift 并发 终极极简总结

5 阅读1分钟

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 是主线程,全局池是无主后台。