一个用 Swift 编写的并发原语包,专为 Swift 开发者设计
此包提供各种基本的并发原语,例如 Lock
、类似于其他语言中 Mutex
的 Locked
、ThreadPool
、Channel
和 Queue
。 本包旨在提供其他编程语言中现成可用但在 Swift 中不存在的并发原语。
大多数构造不应在异步上下文中使用,因为它们会阻塞线程的执行流程,从而违反 Swift 的运行时约定:线程执行的前向进展。
此包可以作为 Swift 语言的 Dispatch
模块的替代方案,并提供更多并发构造。
要使用此包
首先,将以下包依赖项添加到您的 package.swift
文件中
.package(url: "https://github.com/Genaro-Chris/swift-concurrency-primitives", branch: "main")
然后将 Primitives
库添加到您要使用的目标中
.product(name: "Primitives", package: "swift-concurrency-primitives")
最后
import Primitives
此包提供了各种基本的并发原语,可以分为以下几类
此包还提供一些构造,用于同步对关键代码段的并发访问,以避免数据竞争错误
此包甚至提供了一些构造,用于协调线程,等待所有线程完成执行
此包提供了一些并发构造,使线程能够通过传递值作为消息来共享内存。
此包提供一些并发构造,可以有效地管理固定大小的工作线程,随时准备执行代码。
一种同步原语,提供了一种仅执行一次代码的方法,无论在线程安全的情况下调用多少次
还有更多,或即将添加
API 文档也可以在此处访问:here
有关此包的一些实际用法,请仔细查看 ExampleApp
我非常欢迎并鼓励所有 Swift 开发人员的各种贡献。
此包在 Apache-2.0 许可证下发布。 有关更多信息,请参见 LICENSE。