rust 案例_Rust编程进阶:047、通道的例子

例子1:

use std::sync::mpsc;

use std::thread;

fn main() {

let (tx, rx) = mpsc::channel();

thread::spawn(move || {

let val = String::from("hi");

tx.send(val).unwrap();

// println!("val = {}", val); // 调用send的时候,会发生move动作,所以此处不能再使用val

});

let re = rx.recv().unwrap();

println!("got: {}", re);

}

例子2:

use std::sync::mpsc;

use std::thread;

use std::time::Duration;

fn main() {

let (tx, rx) = mpsc::channel();

thread::spawn(move || {

let vals = vec![

String::from("hi"),

String::from("from"),

String::from("the"),

String::from("thread"),

];

for val in vals {

tx.send(val).unwrap();

thread::sleep(Duration::from_secs(1));

}

});

for recv in rx {

println!("Got: {}", recv);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值