{% link https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html Async 官方文档 %}

Rust 中的 Async

Rust 中的 async 和 thread

OS线程: 适用于少量任务,有内存和CPU开销,且线程生成和线程间切换非常昂贵 线程池可以降低一些成本 允许重用同步代码,代码无需大改,无需特定编程模型 有些系统支持修改线程优先级

Async : 显著降低内存和CPU开销 同等条件下,支持比线程多几个数量级的任务(少数线程支撑大量任务) 可执行文件大(需要生成状态机,每个可执行文件捆绑一个异步运行时)

Async 并不比线程好,只是不同而已。

虽然 Rust 本身就支持 async 编程,但很多应用依赖于社区的库:

Rust trait 不支持 async。

兼容性说明 async和同步代码不能总是自由组合。例如:不能直接从同步函数来调用异步函数。async 代码间也不总是能自由组合。一些 crate 依赖于特定的 async 运行时。因此,尽早研究确定使用哪个 async 运行时。

版权声明

作者: 浮生一梦

链接: /posts/1/01/rust-async/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键