用途:介绍 Swift 6.2 的 Approachable Concurrency 并发模型,帮助开发者采用“默认单线程、并发显式引入”的写法,在保持性能的同时消除常见数据竞争错误。适用于迁移 Swift 5.x 或 6.0/6.1 项目、解决数据竞争编译错误、设计以 MainActor 为中心的应用架构、把 CPU 密集任务卸载到后台,以及在 Xcode 26 中启用相关构建设置。
主要能力:Swift 6.2 中 async 函数默认停留在调用方 actor 上,不再被隐式卸载到后台线程,因此 @MainActor 类型调用 async 方法不再报数据竞争错误。支持隔离一致性(isolated conformances),让 MainActor 类型安全实现非隔离协议,如 extension StickerModel: @MainActor Exportable。全局与静态可变状态可用 @MainActor 保护。提供 MainActor 默认推断模式,可省去大量手动标注,适合应用、脚本等可执行目标。需要真正并行时,用 @concurrent 显式卸载:将所在类型标记为 nonisolated,给函数加 @concurrent,必要时加 async,并在调用处 await。
使用方式:在 Xcode 的 Swift Compiler > Concurrency 构建设置中启用;SPM 通过 SwiftSettings API 配置;可用 swift.org/migration 的迁移工具自动改代码。建议先为应用目标启用 MainActor 默认推断,再用 Instruments 分析热点后对 CPU 密集路径加 @concurrent,并逐步启用各项特性。
限制与注意:@concurrent 示例依赖 SE-0466 与 SE-0461 构建设置,未启用时该代码存在数据竞争,编译器会报错。不要给所有 async 函数加 @concurrent,不要用 nonisolated 压制编译错误,不要假设所有 async 代码都在后台运行。资料未提供具体价格、平台支持范围等更多信息。