Infomaniak 并发

摘要

借助 Swift 的结构化并发,我们可以优雅而无缝地表达正确的异步代码。

然而,以一种任何人都能轻松使用,并且可以在工作负载和平台之间相对良好地扩展的方式来并行化代码执行仍然不是一件容易的事。从手表到拥有 128 个核心的 Linux 服务器。

这个库的目标不是提供异步版本的 mapforEach 等。 它的目标是在异步版本的 mapforEach 等中并行化代码执行。

它本质上是极简主义的,只提供像 mapforEach 这样的顶级函数。

这个包支持任何第一方的 Swift 平台。 1.0.0 版本兼容 Swift 6。旧版本兼容 Swift 5.7 及更高版本。

这个库在 Linux、Windows 和其他非 Apple 平台上实际上非常有用。

经过充分测试。在 Infomaniak 用纯 Swift 编写的应用程序中广泛使用。

特性

行为

一种启发式算法会为您确定一个并行度,但可以自定义。 我们建议在使用网络调用时坚持使用固定的并行度(1-4左右)。

这目前在生产代码中运行,现在与 Swift 6 兼容。

这不使用 Task.yield()。 根据您自己的工作负载,自行决定是否实现让步。