当我们在使用tokio和MPSC(多生产者单消费者)通道时,通常以某种固定的方式连接派生线程。然而,在最近项目中,必须在各种配置中动态匹配异步生产者和消费者。
在这篇文章中,让我们来看看如何实现这种非常有用的动态匹配模式。
首先,我们创建一个关于餐厅的Rust项目:
cargo init restaurant
在Cargo.toml文件中加入依赖项:
[dependencies]tokio = { version = "1.38.0", features = ["full"] }
然后,在src/main.rs文件中写入业务逻辑代码。
作为餐厅经理,可以分配不同的烹饪台来异步准备不同类型的食物,代码如下(现在不用担心未定义的值):
async fn cooking_stand(food: char) { loop { somewhere.send(food.clone()).await; }}
食物应该被送到等待上菜的餐桌上,代码如下:
async fn table (number: u8) { loop { let food = somehow.recv().await; println!("Got {} at table {}", food, number); }}
现在可以组织我们的餐厅了:
#[tokio::main]async fn main() { // 烹饪台 tokio::spawn(cooking_stand('
本文链接:http://www.28at.com/showinfo-26-97905-0.html如何动态匹配 Tokio 派生线程?你知道吗?
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: Go语言并发控制Channel使用场景分析与解决方案
下一篇: SpringBoot这几个工具类太有用了