Rust 学习笔记 21:并发编程 (无畏并发)

Rust 学习笔记 21:并发编程 (无畏并发) “Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” – Rob Pike 在很多语言中,并发编程是噩梦。数据竞争 (Data Race)、死锁 (Deadlock)、竞态条件 (Race Condition) 让人防不胜防。 Rust 号称 “Fearless Concurrency”(无畏并发)。它利用所有权和类型系统,在编译期就把数据竞争扼杀在摇篮里。 1. 使用线程 Rust 默认使用 1:1 线程模型,即一个 Rust 线程对应一个操作系统线程。 1use std::thread; 2use std::time::Duration; 3 4fn main() { 5 thread::spawn(|| { 6 for i in 1..10 { 7 println!("hi number {} from the spawned thread!", i); 8 thread::sleep(Duration::from_millis(1)); 9 } 10 }); 11 12 for i in 1..5 { 13 println!("hi number {} from the main thread!", i); 14 thread::sleep(Duration::from_millis(1)); 15 } 16} 注意:当主线程结束时,所有派生线程都会被强制终止,无论它们是否执行完。 ...

2025-11-29 · 2 min · 221 words · 老墨