4-并发编程
并发编程
2 分钟阅读
译文 · 基于 Asynchronous Programming in Rust
原文链接: https://rust-lang.github.io/async-book/part-guide/intro.html
本书的这一部分是 async Rust 的教程式指南。面向 Rust 异步编程的新手。无论你是否在其他语言中做过异步编程,都应该会有帮助。如果你有经验,可以跳过或略读第一节。你可能还想尽早阅读这篇与其他语言 async 的对比。
我们将首先讨论不同的并发编程模型,使用进程、线程或异步任务。第一章将涵盖 Rust async 模型的核心部分,然后我们在第二章深入 async 编程的细节,介绍 async 和 await 编程范式。我们在后续章节中涵盖更多 async 编程概念。
async 编程的主要动机之一是更高性能的 IO,我们在下一章中涵盖。我们还在同一章中详细讨论阻塞。阻塞是 async 编程中的主要隐患,线程被某个操作(通常是 IO)同步等待而阻塞,无法继续推进。
async 编程的另一个动机是它促进了并发代码的抽象与组合的新模型。涵盖该内容后,我们继续讨论并发任务之间的同步。
有一章关于 async 编程工具。
最后几章涵盖一些更专业的主题,从异步析构与清理开始(这是常见需求,但由于目前没有好的内置解决方案,属于较为专业的话题)。
指南中的接下来两章深入讲解 future 和运行时,这是 async 编程的两个基本构建块。
最后,我们涵盖定时器与信号处理和异步迭代器(即流)。后者是我们处理异步事件序列的方式(对比用 future 或异步函数表示的单个异步事件)。这是语言正在积极开发的领域,可能有些粗糙。
并发编程
Async 与 await
更多 async/await 主题
IO 与阻塞问题
并发组合 Future
通道、锁与同步
异步编程工具
析构与清理
Future
运行时
定时器与信号处理
异步迭代器(Stream)