ToB企服应用市场:ToB评测及商务社交产业平台

标题: Rust async 编程 [打印本页]

作者: 祗疼妳一个    时间: 2023-5-26 13:39
标题: Rust async 编程
Rust async 编程

Asynchronous Programming in Rust:https://rust-lang.github.io/async-book/
中文书名《Rust 异步编程指南》:https://github.com/rustlang-cn/async-book
Rust语言圣经(Rust Course):https://course.rs/advance/async/getting-started.html
一、Getting Started

1.1 为什么使用 async

为什么使用 async

其它的并发模型

Rust 中的 async

Rust 中的 async 和线程(thread)

Async 并不是比线程好,只是不同而已!
总结:
例子

如果想并发的下载文件,你可以使用多线程如下实现:
  1. fn get_two_sites() {
  2.     // Spawn two threads to do work. 创建两个新线程执行任务
  3.     let thread_one = thread::spawn(|| download("https://www.foo.com"));
  4.     let thread_two = thread::spawn(|| download("https://www.bar.com"));
  5.     // Wait for both threads to complete. 等待两个线程的完成
  6.     thread_one.join().expect("thread one panicked");
  7.     thread_two.join().expect("thread two panicked");
  8. }
复制代码
使用async的方式:
  1. async fn get_two_sites_async() {
  2.     // Create two different "futures" which, when run to completion, 创建两个不同的`future`,你可以把`future`理解为未来某个时刻会被执行的计划任务
  3.     // will asynchronously download the webpages. 当两个`future`被同时执行后,它们将并发的去下载目标页面
  4.     let future_one = download_async("https://www.foo.com");
  5.     let future_two = download_async("https://www.bar.com");
  6.     // Run both futures to completion at the same time. 同时运行两个`future`,直至完成
  7.     join!(future_one, future_two);
  8. }
复制代码
自定义并发模型

1.2 Rust Async 的目前状态

Async Rust 目前的状态

语言和库的支持

注意

编译和调试

兼容性考虑

性能特征

1.3 async/await 入门

async

[code]~/rust via
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4