欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

rust中async/await的使用示例詳解

 更新時間:2024年10月12日 09:26:48   作者:UDAIOT1000  
在Rust中,async/await用于編寫異步代碼,使得異步操作更易于理解和編寫,通過使用await,在async函數或代碼塊中等待Future完成,而不會阻塞線程,允許同時執(zhí)行其他Future,這種機制簡化了異步編程的復雜性,使代碼更加直觀

在Rust中,async/await 用于編寫異步代碼。它允許您以同步的方式編寫異步代碼,使得異步操作更易于理解和編寫。

安裝依賴:

cargo add futures
cargo add async-std

使用示例:

示例1:

use async_std::task::block_on;
fn main() {
    block_on(hello());
}
async fn hello() {
    println!("hello , world!!!");
}

 示例2:

use std::time::Duration;
use async_std::task::{block_on, sleep};
fn main() {
    let future = hello();
    block_on(future); // 會阻塞線程等待異步任務完成
    println!("hello main");
}
async fn hello() {
    println!("hello , world!!!");
    // 使用async_std運行時的sleep,不要使用線程的sleep,睡眠3秒
    sleep(Duration::from_secs(3)).await;
}

示例3:

 async代碼塊:

use std::{future::Future, time::Duration};
use async_std::task::{block_on, sleep};
fn main() {
    let future = hello();
    block_on(future); // 會阻塞線程等待異步任務完成
    println!("hello main");
}
fn hello() -> impl Future<Output = ()> {
    async {
        println!("hello , world!!!");
        // 使用async_std運行時的sleep,不要使用線程的sleep,睡眠3秒
        sleep(Duration::from_secs(3)).await;
    }
}

 使用await:

使用await,

它只能在async函數或者async代碼塊中用,

它會等待Future代碼直到完成,

它不會阻塞當前線程,線程還可以執(zhí)行其他的Future

use std::time::Duration;
use async_std::task::{block_on, sleep};
fn main() {
    block_on(order());
}
async fn cook() -> String {
    sleep(Duration::from_secs(3)).await;
    "糖醋排骨".to_string()
}
async fn order() {
    println!("來一份糖醋排骨!!!");
    let paigu = cook().await;
    println!("{:?}", paigu);
}

到此這篇關于rust中async/await的使用的文章就介紹到這了,更多相關rust async/await使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 詳解Rust編程中的共享狀態(tài)并發(fā)執(zhí)行

    詳解Rust編程中的共享狀態(tài)并發(fā)執(zhí)行

    雖然消息傳遞是一個很好的處理并發(fā)的方式,但并不是唯一一個,另一種方式是讓多個線程擁有相同的共享數據,本文給大家介紹Rust編程中的共享狀態(tài)并發(fā)執(zhí)行,感興趣的朋友一起看看吧
    2023-11-11
  • Rust語言中級教程之指針

    Rust語言中級教程之指針

    Rust中共有三種類型的指針,分別為引用,解引用,智能指針,這篇文章主要介紹了Rust語言中級教程之指針,需要的朋友可以參考下
    2023-05-05
  • Rust中的Box<T>之堆上的數據與遞歸類型詳解

    Rust中的Box<T>之堆上的數據與遞歸類型詳解

    本文介紹了Rust中的Box<T>類型,包括其在堆與棧之間的內存分配,性能優(yōu)勢,以及如何利用Box<T>來實現遞歸類型和處理大小未知類型,通過Box<T>,Rust程序員可以更靈活地管理內存,避免編譯時大小不確定的問題,并提高代碼的效率和靈活性
    2025-02-02
  • rust中trait的使用方法詳解

    rust中trait的使用方法詳解

    trait用中文來講就是特征,它就是一個標記,只不過這個標記被用在特定的地方,也就是類型參數的后面,下面我們就來學習一下trait的具體使用方法吧
    2023-12-12
  • Rust生成隨機數的項目實踐

    Rust生成隨機數的項目實踐

    Rust標準庫中并沒有隨機數生成器,常見的解決方案是使用rand包,本文主要介紹了Rust生成隨機數的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Rust 語言的全鏈路追蹤庫 tracing使用方法

    Rust 語言的全鏈路追蹤庫 tracing使用方法

    這篇文章主要介紹了Rust 語言的全鏈路追蹤庫 tracing,接下來就以 tracing 為例,介紹一下trace 的核心概念以及使用方法,需要的朋友可以參考下
    2022-12-12
  • 探索?Rust?中實用的錯誤處理技巧

    探索?Rust?中實用的錯誤處理技巧

    探索Rust中實用的錯誤處理技巧!Rust是一門靜態(tài)類型系統(tǒng)安全且高效的編程語言,但使用過程中難免會遇到各種錯誤,學會如何正確處理這些錯誤至關重要,本指南將為您提供一些實用的錯誤處理技巧,幫助您更好地編寫健壯的代碼,需要的朋友可以參考下
    2024-01-01
  • Rust讀取配置文件的實現

    Rust讀取配置文件的實現

    本文主要介紹了Rust讀取配置文件的實現,主要讀取Cargo.toml文件,讀取.env文件和讀取自定義toml文件這三種,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Rust自定義安裝路徑的詳細圖文教程

    Rust自定義安裝路徑的詳細圖文教程

    工欲善其事必先利其器,無論是對小白還是大神來說,想要學習 Rust 第一步那必須是 Rust 的環(huán)境配置,下面這篇文章主要給大家介紹了關于Rust自定義安裝路徑的詳細圖文教程,需要的朋友可以參考下
    2023-03-03
  • Rust中的panic定義及觸發(fā)條件詳解

    Rust中的panic定義及觸發(fā)條件詳解

    這篇文章主要為大家介紹了Rust中的panic定義及觸發(fā)條件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04

最新評論