
资源介绍
1. 异步编程基础(第 1-2 章)
异步编程概念:解释异步编程与同步编程的区别,通过 HTTP 请求示例展示异步如何提升性能(如并发处理多个请求时耗时显著减少)。
进程与线程:介绍进程(独立内存空间)和线程(进程内共享内存)的概念,说明异步编程在单线程内实现多任务并发的优势。
Futures 与任务:Futures 是异步操作的占位符,通过poll方法判断状态(Pending或Ready);任务是由执行器管理的异步计算单元,可由多个 Futures 组合而成。
关键概念:包括 Pinning(固定内存地址防止移动)、Context(提供 Waker 用于唤醒任务)、数据共享(通过Arc、Mutex等实现)。
2. 异步运行时与队列(第 3-4 章)
自定义异步队列:构建包含多个队列和工作线程的异步运行时,支持任务优先级、任务窃取(空闲线程从其他队列获取任务)。
网络集成:使用hyper库实现 HTTP 请求集成到自定义运行时,通过mio库直接操作套接字,实现低级别网络通信。
3. 协程与响应式编程(第 5-6 章)
协程(Coroutines):可暂停和恢复的程序单元,与异步任务类似但无需多线程,通过实现Coroutine trait 实现生成器功能,模拟异步行为。
响应式编程:基于观察者模式构建反应式系统(如加热器温度控制系统),通过事件总线实现事件广播,支持多订阅者异步处理事件。
4. Tokio 库与高级模式(第 7-9 章)
自定义 Tokio:配置 Tokio 运行时(如工作线程数、线程池),实现本地任务池、优雅关闭(处理 Ctrl-C 或 SIGHUP 信号)。
Actor 模型:Actor 通过消息传递通信,实现隔离性和并发处理,示例包括键值存储、状态恢复和监督机制(监控 Actor 状态并重启故障 Actor)。
设计模式:介绍异步环境中的常用模式,如隔离模块(为同步代码提供异步接口)、瀑布模式(链式异步任务)、装饰器模式(添加日志等功能)、状态机模式(管理状态转换)、重试与熔断模式(处理错误)。
5. 实战与测试(第 10-11 章)
无依赖异步服务器:仅使用标准库构建异步 TCP 服务器,包括执行器、Waker、发送器 / 接收器等组件。
测试策略:包括单元测试(模拟接口)、死锁检测、竞争条件测试、网络交互模拟,以及细粒度 Future 测试(控制任务 polling 顺序)。
作者背景
Maxwell Flitton:《Rust Web Programming》作者,专注于医疗和金融领域的 Rust 实时系统开发。
Caroline Morton:医生转型软件工程师,开发医疗模拟软件,研究基于 Rust 的合成健康数据生成。
适用人群
适合中级 Rust 开发者,帮助他们利用异步功能改进应用。对于 Rust 新手,建议先学习《The Rust Programming Language》等基础资源。