Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • Swift 异步编程术语表

Swift 异步编程术语表

Swift 自 5.5 版本引入了 async/await 和结构化并发(Structured Concurrency)之后,异步编程成为开发者需要掌握的重要技能。以下术语表整理了 Swift 异步编程中的核心术语及其定义,帮助你快速熟悉相关概念。

A

  • Async Function(异步函数)
    使用 async 关键字声明的函数,表示该函数可以在执行期间暂停并等待某个异步操作完成。调用异步函数时需要使用 await 关键字。
    示例:func fetchData() async -> Data

  • Async Sequence(异步序列)
    一个可以通过异步迭代访问的序列,通常使用 AsyncSequence 协议实现,适用于处理流式数据(如网络流或文件读取)。
    示例:AsyncStream 是常见的异步序列实现。

  • Async Stream(异步流)
    一种实现 AsyncSequence 协议的具体类型,用于创建和处理连续的异步数据流。
    示例:AsyncStream { continuation in ... }

  • Await(等待)
    使用 await 关键字来暂停执行当前函数,直到某个异步操作完成。await 只能在 async 函数或上下文中使用。
    示例:let data = await fetchData()

B

  • Background Task(后台任务)
    在后台优先级执行的异步任务,通常通过 Task.detached 或指定较低优先级来创建。
    示例:Task(priority: .background) { ... }

C

  • Concurrency(并发)
    程序在同一时间段内处理多个任务的能力。Swift 的并发模型通过 async/await 和 Actors 提供安全且高效的并发编程方式。

  • Continuation(延续)
    用于桥接旧式基于回调的 API 和现代 async/await 的工具。Swift 提供了 withCheckedContinuation 和 withUnsafeContinuation 来手动管理延续。
    示例:withCheckedContinuation { continuation in ... }

  • Cooperative Thread Pool(协作线程池)
    Swift 并发运行时使用的线程池,任务在其中协作执行,避免了传统线程管理的复杂性。开发者无需直接管理线程,但可以通过优先级影响调度。

D

  • Dispatch Queue(分发队列)
    虽然不是 Swift 并发特有的术语,但在异步编程中常用于与 GCD(Grand Central Dispatch)交互。Swift 的并发可以与 DispatchQueue 结合使用。

G

  • Global Actor(全局 Actor)
    一种特殊的 Actor,可以跨模块或全局使用,常见于需要全局同步的场景。@MainActor 是 Swift 中的内置全局 Actor。
    示例:@MainActor class MyViewModel { ... }

M

  • Main Actor(主 Actor)
    一个特殊的全局 Actor,确保代码在主线程执行,常用在 UI 更新等场景。
    示例:@MainActor func updateUI() { ... }

R

  • Race Condition(竞争条件)
    多个任务同时访问共享资源,导致不可预测的行为。Swift 使用 Actors 和结构化并发来减少竞争条件的发生。

  • Reentrant(可重入)
    描述一个函数或方法是否可以在执行期间被中断并再次调用。Swift 的 Actor 模型通过限制并发访问来避免重入问题。

S

  • Structured Concurrency(结构化并发)
    Swift 并发模型的核心设计理念,确保任务的生命周期清晰且可控,避免任务泄漏或未完成的情况。
    示例:通过 async let 或 TaskGroup 实现结构化并发。

  • Suspend(挂起)
    在调用 await 时,当前函数的执行会被挂起,等待异步操作完成后再恢复。挂起期间不会阻塞线程。

T

  • Task(任务)
    Swift 并发中的基本执行单元,封装了一段异步代码。可以通过 Task { ... } 创建并运行。
    示例:Task { await doSomething() }

  • Task Group(任务组)
    使用 withTaskGroup 创建的一组并发任务,允许开发者并行执行多个任务并等待所有任务完成。
    示例:await withTaskGroup(of: Int.self) { group in ... }

  • Task Cancellation(任务取消)
    取消正在运行的任务,通常通过 Task.cancel() 或检查 Task.isCancelled 实现。Swift 的并发模型支持协作式取消。
    示例:if Task.isCancelled { return }

  • Task Priority(任务优先级)
    指定任务的执行优先级(如 .userInitiated、.background),影响任务在协作线程池中的调度。
    示例:Task(priority: .high) { ... }

A (Actors)

  • Actor(演员)
    一种引用类型,用于保护共享状态,防止并发访问导致的数据竞争。Actor 的方法默认是串行执行的。
    示例:actor MyCounter { var count = 0 }

  • Actor Isolation(Actor 隔离)
    指 Actor 内部状态只能通过其方法访问,且访问是串行的,确保线程安全。

Y

  • Yield(让步)
    在 AsyncStream 或其他异步上下文中,yield 用于将值传递给消费者。
    示例:continuation.yield(value)

其他相关术语

  • Deadlock(死锁)
    多个任务互相等待对方完成,导致程序无法继续执行。Swift 的 Actor 和结构化并发减少了死锁的可能性,但仍需注意循环等待。

  • Sendable(可发送)
    一个协议,表示类型可以安全地在并发上下文中传递。值类型和某些引用类型可以符合 Sendable。
    示例:struct MyData: Sendable { ... }

  • Thread Safety(线程安全)
    确保代码在多线程环境下正确运行。Swift 的并发模型通过 Actors 和隔离机制提供了内置的线程安全支持。


总结

以上术语表涵盖了 Swift 异步编程中的核心概念,帮助你快速理解和使用 async/await、结构化并发和 Actors 等特性。建议结合实际代码练习加深理解。如果需要某个术语的详细解释或代码示例,可以进一步交流!

Last Updated:: 3/6/25, 10:41 AM