swift-concurrency-primitives

License

一个用 Swift 编写的并发原语包,专为 Swift 开发者设计

概述

此包提供各种基本的并发原语,例如 Lock、类似于其他语言中 MutexLockedThreadPoolChannelQueue。 本包旨在提供其他编程语言中现成可用但在 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