當(dāng)我們在使用tokio和MPSC(多生產(chǎn)者單消費(fèi)者)通道時,通常以某種固定的方式連接派生線程。然而,在最近項(xiàng)目中,必須在各種配置中動態(tài)匹配異步生產(chǎn)者和消費(fèi)者。
在這篇文章中,讓我們來看看如何實(shí)現(xiàn)這種非常有用的動態(tài)匹配模式。
首先,我們創(chuàng)建一個關(guān)于餐廳的Rust項(xiàng)目:
cargo init restaurant在Cargo.toml文件中加入依賴項(xiàng):
[dependencies]tokio = { version = "1.38.0", features = ["full"] }然后,在src/main.rs文件中寫入業(yè)務(wù)邏輯代碼。
作為餐廳經(jīng)理,可以分配不同的烹飪臺來異步準(zhǔn)備不同類型的食物,代碼如下(現(xiàn)在不用擔(dān)心未定義的值):
async fn cooking_stand(food: char) { loop { somewhere.send(food.clone()).await; }}食物應(yīng)該被送到等待上菜的餐桌上,代碼如下:
async fn table (number: u8) { loop { let food = somehow.recv().await; println!("Got {} at table {}", food, number); }}現(xiàn)在可以組織我們的餐廳了:
#[tokio::main]async fn main() { // 烹飪臺 tokio::spawn(cooking_stand('
本文鏈接:http://m.www897cc.com/showinfo-26-97905-0.html如何動態(tài)匹配 Tokio 派生線程?你知道嗎?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Go語言并發(fā)控制Channel使用場景分析與解決方案
下一篇: SpringBoot這幾個工具類太有用了