苹果公司计划为 Swift 语言配备一个 "一流"的并发模型,旨在让 Swift 的并发编程变得高效、安全、便捷。

据 Swift 团队公布的路线图显示,其具体计划为:

  • 以 Swift 消除 memory unsafety 的方式消除 data races 和死锁。

  • 使异步编程在使用时方便且清晰。

  • 提供开发人员可以遵循的一组标准语言工具和技术。

  • 通过在编译时更好地了解异步代码,提高异步代码的性能。

官方表示,这些特性的引入将跨越多个 Swift 版本。引入过程将大致分为两个阶段。第一阶段将引入 async 语法和 actor 类型;这将允许用户围绕 actor 组织他们的代码,以减少但不消除 data races。第二阶段 Swift 团队则将实行 full actor isolation,以消除 data races。

第一阶段的具体建议包括:

  • 向 Swift 引入了基于协程的 async/await 模型。

  • Task API 和结构化并发,将 task 的概念引入标准库。

  • Actors 和 actor isolation,描述了为并发程序提供 state isolation 的 actor 模型。

  • 与 Swift 的前身语言 Objective-C 的并发互操作性。

  • 异步处理程序,引入了将同步 actor 函数声明为异步处理程序的功能。

详情可查看官方博客:https://forums.swift.org/t/swift-concurrency-roadmap/41611