JHHK

欢迎来到我的个人网站
行者常至 为者常成

Swift Concurrency 1

目录

Swift Concurrency 是什么

Swift Concurrency 是 Swift 从 5.5 开始引入的一套现代化并发模型,让我们用更安全、更直观的方式来写并发代码。

它的核心有三部分:

async/await
用来写异步函数和等待异步结果。
让异步代码像同步代码一样清晰。

Task & TaskGroup
Task 用来创建并发任务。
TaskGroup 用来同时启动多个任务,并等待它们全部完成。

Actor
一种新的引用类型,保证数据在多线程访问时是安全的。
用来解决“多线程共享数据的安全问题”(类似线程安全锁的升级版)。

为什么要有 Swift Concurrency

在 Swift Concurrency 之前,我们常用:
GCD (DispatchQueue):容易写出回调地狱(多层嵌套)。
OperationQueue:结构化稍好,但还是容易出错。

Swift Concurrency 的优势:
✅ 用 async/await 让代码像同步一样直观。
✅ 避免回调地狱,结构更清晰。
✅ 有类型检查,编译器帮你保证线程安全。
✅ 和 iOS UI 主线程(MainActor)结合紧密。

举个小例子

没有 Swift Concurrency 时(GCD 方式):

DispatchQueue.global().async {
    let data = fetchData()
    DispatchQueue.main.async {
        label.text = data
    }
}

使用 Swift Concurrency:

Task {
    let data = await fetchData()
    await MainActor.run {
        label.text = data
    }
}

✅ 总结一句:
Swift Concurrency 是 一整套新的并发编程方案(async/await + Task + Actor),让多任务编程更直观更安全


行者常至,为者常成!





R
Valine - A simple comment system based on Leancloud.