苹果公司计划为 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