#parallel-iterator #parallel #ordered #iterator #thread

ordered-parallel-iterator

并行执行任务,按出现顺序返回完成的任务

3 个不稳定版本

0.2.0 2024 年 5 月 9 日
0.1.1 2020 年 4 月 18 日
0.1.0 2019 年 3 月 9 日

#251并发


2 crates 使用

Unlicense OR MIT

8KB
108

ordered-parallel-iterator

此 crate 提供了一个任务结果的迭代器,它并行执行任务,并按源范围迭代器的顺序返回完成的任务。如果你需要并行处理一些数据,但又需要结果按照出现顺序(FIFO)返回,这将非常有用。

MIT 或 UNLICENSE 双许可。

安装

将以下依赖项添加到您的 Cargo.toml

[dependencies]
ordered-parallel-iterator = "0.2"

用法

use ordered_parallel_iterator::OrderedParallelIterator;

fn run_me(x: usize) -> usize {
    x + 1
}

fn main() {
    for i in OrderedParallelIterator::new(|| 0..10, || run_me) {
        println!("Result from iterator: {}", i);
    }
}

在此示例中,每个 run_me 调用将在自己的线程中发生,但结果将按完成速度的顺序返回。并行运行的任务数量绑定到 CPU 核心的数量。


lib.rs:

Crate ordered-parallel-iterator 提供了一个任务结果的迭代器,它并行执行任务,并按源范围迭代器的顺序返回完成的任务。如果你需要并行处理一些数据,但又需要结果按照出现顺序(FIFO)返回,这将非常有用。

安装

将以下依赖项添加到您的 Cargo.toml

[dependencies]
ordered-parallel-iterator = "0.2"

用法

use ordered_parallel_iterator::OrderedParallelIterator;

fn run_me(x: usize) -> usize {
x + 1
}

fn main() {
for i in OrderedParallelIterator::new(|| 0..10, || run_me) {
println!("Result from iterator: {}", i);
}
}

在此示例中,每个 run_me 调用将在自己的线程中发生,但结果将按完成速度的顺序返回。并行运行的任务数量绑定到 CPU 核心的数量。

依赖项

~215KB