高级并行性:线程池、并行迭代器和进程
迭代器基础与 rayon 引入
迭代器是 Rust 中非常有用的概念,它由某种基础类型(如内置整数)、状态跟踪类型以及针对该状态跟踪类型实现的 Iterator 组成。优化器在将迭代器链转换为循环方面表现出色,并且不断改进。
当我们尝试对 Rust 整数类型的迭代器进行并行化时,会发现由于从操作系统分配新线程的时间开销,可能会淹没潜在的性能提升。不过,如果我们采用迭代风格编写代码,并且有适合并行运行的计算任务,就可以使用 rayon 来实现并行迭代。
rayon 是 Rust 的一个数据并行库,它扩展了 Rust 的基本 Iterator 概念,引入了隐式并行性。由于 Rust 的内存安全性, rayon 可以在现代机器上实现一些有趣的技巧。每个迭代器元素相互隔离,这一不变性由类型系统保证。 rayon 项目分为子 crate: rayon-core 和 rayon-futures 。
rayon 的依赖项很少,默认情况下 rayon-core 是唯一的依赖项。 rayon-core 的依赖项如下:
| 依赖项 | 版本 |
| ---- | ---- |
| rand | 0.7 - 0.8 |
|
超级会员免费看
订阅专栏 解锁全文
1062

被折叠的 条评论
为什么被折叠?



