线程

Rust 通过 spawn 函数提供了创建本地操作系统(native OS)线程的机制,该函数的参数是一个通过值捕获变量的闭包(moving closure)。

  1. use std::thread;
  2. static NTHREADS: i32 = 10;
  3. // 这是主(`main`)线程
  4. fn main() {
  5. // 提供一个 vector 来存放所创建的子线程(children)。
  6. let mut children = vec![];
  7. for i in 0..NTHREADS {
  8. // 启动(spin up)另一个线程
  9. children.push(thread::spawn(move || {
  10. println!("this is thread number {}", i)
  11. }));
  12. }
  13. for child in children {
  14. // 等待线程结束。返回一个结果。
  15. let _ = child.join();
  16. }
  17. }

这些线程由操作系统调度(schedule)。