concurrency: A collection of concurrency primitives

并发

License Platform Swift5.5 CI

描述

concurrency 是并发原语的集合,有助于提高可测试性

用法

import Concurrency

// Create `DispatchQueueFactory` instance
let factory = DispatchQueueFactory()

// Build `main` queue from factory
let mainQueue = factory.main()

// Build `global` queue with QOS
let globalQueue = factory.global(qos: .background)

// Build `private` queue
let privateQueue = factory.privateQueue(label: String(describing: self),
                                        qos: .background,
                                        attributes: .concurrent,
                                        autoreleaseFrequency: .inherit,
                                        target: nil)

出于测试目的,您可以使用 TestConrurrency 目标。

import TestConcurrency

let testQueue = TestDispatchQueue()

// Run block immediately
testQueue.async {}

要求

安装

Swift Package Manager

Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并已集成到 swift 编译器中。它尚处于早期开发阶段,但 concurrency 确实支持在受支持的平台上使用它。

一旦你设置好你的 Swift 包,将 concurrency 添加为依赖项就像将其添加到你的 Package.swiftdependencies 值中一样容易。

dependencies: [
    .package(url: "https://github.com/space-code/concurrency.git", .upToNextMajor(from: "0.2.0"))
]

沟通

贡献

引导开发环境

make bootstrap

请随时帮助这个项目!如果你看到任何可以改进的地方或想要新功能,请打开一个 issue 或发送一个 Pull Request!

作者

Nikita Vasilev, nv3212@gmail.com

许可证

concurrency 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。