项目简介
Rayon 是 Rust 语言的数据并行库,它将迭代器操作并行化,无需改动底层代码即可提升性能。
官网:https://github.com/rayon-rs/rayon
核心设计
- 基于工作窃取(Work Stealing)算法
- 提供
par_iter()将普通迭代器转为并行 - 自动管理线程池,默认使用 CPU 核心数
示例
use rayon::prelude::*;
fn main() {
let numbers: Vec<u64> = (0..100_000_000).collect();
// 串行求和
let sum1: u64 = numbers.iter().sum();
// 并行求和(更快)
let sum2: u64 = numbers.par_iter().sum();
assert_eq!(sum1, sum2);
}适用场景
- CPU 密集型计算(图像处理、科学计算)
- 数据流处理
- 机器学习数据预处理
Rayon 让 Rust 的并行编程变得简单安全。
