如何动态匹配 Tokio 派生线程?你知道吗?
2024-07-01 17:16:54 软件 107观看
摘要当我们在使用tokio和MPSC(多生产者单消费者)通道时,通常以某种固定的方式连接派生线程。然而,在最近项目中,必须在各种配置中动态匹配异步生产者和消费者。在这篇文章中,让我们来看看如何实现这种非常有用的动态匹配模式

当我们在使用tokio和MPSC(多生产者单消费者)通道时,通常以某种固定的方式连接派生线程。然而,在最近项目中,必须在各种配置中动态匹配异步生产者和消费者。FZR28资讯网——每日最新资讯28at.com

在这篇文章中,让我们来看看如何实现这种非常有用的动态匹配模式。FZR28资讯网——每日最新资讯28at.com

首先,我们创建一个关于餐厅的Rust项目:FZR28资讯网——每日最新资讯28at.com

cargo init restaurant

FZR28资讯网——每日最新资讯28at.com

在Cargo.toml文件中加入依赖项:FZR28资讯网——每日最新资讯28at.com

[dependencies]tokio = { version = "1.38.0", features = ["full"] }

FZR28资讯网——每日最新资讯28at.com

然后,在src/main.rs文件中写入业务逻辑代码。FZR28资讯网——每日最新资讯28at.com

作为餐厅经理,可以分配不同的烹饪台来异步准备不同类型的食物,代码如下(现在不用担心未定义的值):FZR28资讯网——每日最新资讯28at.com

async fn cooking_stand(food: char) {    loop {        somewhere.send(food.clone()).await;    }}

FZR28资讯网——每日最新资讯28at.com

食物应该被送到等待上菜的餐桌上,代码如下:FZR28资讯网——每日最新资讯28at.com

async fn table (number: u8) {    loop {        let food = somehow.recv().await;        println!("Got {} at table {}", food, number);    }}

FZR28资讯网——每日最新资讯28at.com

现在可以组织我们的餐厅了:FZR28资讯网——每日最新资讯28at.com

#[tokio::main]async fn main() {    // 烹饪台    tokio::spawn(cooking_stand(' 
			

本文链接:http://www.28at.com/showinfo-26-97905-0.html如何动态匹配 Tokio 派生线程?你知道吗?

声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。

显示全文

最新热点