Rust并发编程:通道与共享状态
1. 通道与消息传递
在并发编程中,消息传递是一种有效的处理并发的方式。在Rust中,我们可以使用通道(channel)来实现消息传递。
1.1 通道的基本使用
在某些情况下,线程在等待消息时可能还有其他工作要做,这时可以使用 try_recv 方法。它允许线程在每次检查是否有消息时,如果没有消息则继续执行其他工作。而在我们的示例中,为了简单起见,使用了 recv 方法,因为主线程除了等待消息外没有其他工作,阻塞主线程是合适的。
use std::thread;
use std::sync::mpsc;
fn main() {
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
let val = String::from("hi");
tx.send(val).unwrap();
});
let received = rx.recv().unwrap();
println!("Got: {}", received);
}
当运行上述代码时,主线程会打印接收到的值:
Got: hi
1.2 通道与所有权转移
所有权规则在消息发送中起着至关重要的作用,它有助于编写安全的并发代码。我们通过一
超级会员免费看
订阅专栏 解锁全文
1177

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



