原文地址 Futures Explained in 200 Lines of Rusthttps://cfsamson.github.io/books-futures-explained/introduction.html
- 四 唤醒器和上下文(Waker and Context)
- Async/Await和并发Async/Await
一 引言
这本书的目的是用一个例子驱动的方法来解释Rust中的Futures,探索为什么他们被设计成这样,以及他们如何工作。我们还将介绍在编程中处理并发性时的一些替代方案。理解这本书中描述的细节, 不需要使用Rust中的 futures或async/await。这是为那些好奇的人准备的,他们想知道这一切是如何运作的。这本书涵盖的内容
这本书将试图解释你可能想知道的一切,包括不同类型的执行器(executor)和运行时(runtime)的主题。我们将在本书中实现一个非常简单的运行时,介绍一些概念,但这已经足够开始了。Stjepan Glavina 发表了一系列关于异步运行时和执行器的优秀文章,如果谣言属实,那么在不久的将来他会发表更多的文章。你应该做的是先读这本书,然后继续阅读 stejpang 的文章,了解更多关于运行时以及它们是如何工作的,特别是:
我将自己限制在一个200行的主示例(因此才有了这个标题)中,以限制范围并介绍一个可以轻松进一步研究的示例。然而,有很多东西需要消化,这并不像我所说的那么简单,但是我们会一步一步来,所以喝杯茶,放松一下。这本书是在开放的,并欢迎贡献。你可以在这里找到这本书。最后的例子,你可以克隆或复制可以在这里找到。任何建议或改进可以归档为一个公关或在问题追踪的书。
一如既往,我们欢迎各种各样的反馈。
阅读练习和进一步阅读
在最后一章)中,我冒昧地提出了一些小练习,如果你想进一步探索的话。这本书也是我在 Rust 中写的关于并发编程的第四本书。如果你喜欢它,你可能也想看看其他的:
- Green Threads Explained in 200 lines of rust
- The Node Experiment - Exploring Async Basics with Rust 节点实验——用Rust探索异步基础
- Epoll, Kqueue and IOCP Explained with Rust 用 Rust 解释 Epoll,Kqueue 和 IOCP
感谢
我想借此机会感谢 mio,tokio,async std,Futures,libc,crossbeam 背后的人们,他们支撑着这个异步生态系统,却很少在我眼中得到足够的赞扬。特别感谢 jonhoo,他对我这本书的初稿给予了一些有价值的反馈。他还没有读完最终的成品,但是我们应该向他表示感谢。
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。