26、高级并行性:线程池、并行迭代器和进程

高级并行性:线程池、并行迭代器和进程

迭代器基础与 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 |
|

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值