简介
在这个实验中,我们有一段 Rust 代码片段,展示了如何使用 spawn 函数和移动闭包来创建原生操作系统线程。代码创建了一个向量来保存创建的线程,遍历一系列数字以创建多个线程,并打印一条标识每个线程编号的消息。最后,主线程使用 join 函数等待每个创建的线程完成。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
在这个实验中,我们有一段 Rust 代码片段,展示了如何使用 spawn 函数和移动闭包来创建原生操作系统线程。代码创建了一个向量来保存创建的线程,遍历一系列数字以创建多个线程,并打印一条标识每个线程编号的消息。最后,主线程使用 join 函数等待每个创建的线程完成。
注意:如果实验未指定文件名,你可以使用任何你想要的文件名。例如,你可以使用
main.rs,并通过rustc main.rs &&./main进行编译和运行。
Rust 提供了一种通过 spawn 函数来创建原生操作系统线程的机制,该函数的参数是一个移动闭包。
use std::thread;
const NTHREADS: u32 = 10;
// 这是主线程
fn main() {
// 创建一个向量来保存创建的子线程
let mut children = vec![];
for i in 0..NTHREADS {
// 启动另一个线程
children.push(thread::spawn(move || {
println!("这是线程编号 {}", i);
}));
}
for child in children {
// 等待线程完成。返回一个结果
let _ = child.join();
}
}
这些线程将由操作系统进行调度。
恭喜你!你已经完成了线程实验。你可以在 LabEx 中练习更多实验来提升你的技能。