Rust并发编程:线程、通道与异步编程
1. Rust中的线程
线程是操作系统提供的独立执行路径,允许程序并发运行代码。所有代码都在一个线程上执行,默认情况下是主线程,每个进程只有一个主线程。每个线程都有自己的栈,而进程的所有线程共享堆内存。
Rust标准库为Windows和POSIX(如Linux、Unix和MacOS)提供了线程接口,除了一些细节外,它们的工作方式相同。以下是一个简单的Rust线程使用示例:
use std::thread;
fn main() {
println!("main: {:? }", thread::current().id());
let handle = thread::spawn(|| {
println!("spawned: {:? }", thread::current().id());
});
// Wait for the thread to finish
handle.join().unwrap();
}
在上述代码中,闭包在一个新线程上运行,并打印出线程的ID。 spawn 函数还返回一个句柄,用于与线程交互,例如等待线程完成( join() )。以下是一些值得注意的线程函数:
- handle.join() :阻塞调用线程,直到加入的线程完成。
- thread::current() :获取调用该函数的线程的句柄。
-
Rust并发编程深入解析
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



