目录和前言
本书内容是在从头开始学习 Rust 异步编程中形成. 异步编程指将程序划分为若干可在特定时间点暂停和继续的任务块, 因此对程序流侵入很大.
书对应代码: https://github.com/PacktPublishing/Asynchronous-Programming-in-Rust
全书内容如下:
- Part1 异步编程基础
- 第一章: 并发和异步编程概述
- 回顾异步模型历史, 介绍相关概念, 建立心理模型, 说明异步的目标问题, 并发和并行的区别, 如何探索异步程序流, 以及相关的操作系统/硬件/中断和 I/O 基础概念.
- 第二章: 编程语言中如何对异步编程进行建模
- 不同编程语言实现异步方式, 以及更多概念(有栈/无栈协程, OS 线程, green 线程, fibers, 回调, promise, future, async/await).
- 第三章: 理解操作系统提供的事件队列, 系统调用及其跨平台抽象
- 介绍 epoll, kqueue, IOCP 的概念和区别, 以及下一章用到的概念(系统调用, FFI, 跨平台抽象).
- 第一章: 并发和异步编程概述
- Part2 事件队列和 Green 线程
- 第四章: 编写自己的事件队列
- 基于 epoll 构建类似 mio 的 API 及其工作原理.
- 第五章: 编写自己的 Green 线程实现(Fibers)
- 编写名为 fibers 的有栈(stackful)协程(和 Go 目前抽象一致). Rust 1.0 前使用此抽象实现.
- 第四章: 编写自己的事件队列
- Part3 Rust 中的 Future 和 async/await
- 第六章: Rust 中的 Future
- Rust 中 future,运行时,异步编程简介.
- 第七章: 协程及 async/await
- 构造当前 Rust 异步实现的简化版本.
- 第八章: 运行时, Waker 以及 Reactor-Executor 模式
- 异步运行时和运行时设计.
- 第九章: 协程及自引用 Struct, 以及 Pinning
- 优化构建的协程, 加入自引用 struct 和 pinning.
- 第十章: 编写自己的异步运行时
- 汇总所有内容, 编写支持运行 Rust future 的运行时.
- 第六章: Rust 中的 Future