Posts in 2021
-
Tokio和Actor
2021-02-13 in Alice Ryhl博客
这篇文章是关于直接用Tokio构建 Actor,而不使用任何 Actor 库,如Actix。这被证明是相当容易做到的,但有一些细节你应该注意。 把tokio::spawn的调用放在哪里 带有运行方法的结构体与裸函数 对 Actor 的处理 背压和有界通道 优雅关闭 本文概述的技术应该适用于任何执行器,但为了简单起见,我们将只讨论Tokio。本文与Tokio教程中的 spawning 和通道章节有一些重叠,我建议也阅读这些章节。 在我们讨论如何编写一个行为体之前,我们需要知 …
Posts in 2020
-
Tokio和Actor
2020-12-21 in Alice Ryhl博客
Rust 的 async/await 特性是通过一种称为协作式调度(cooperative scheduling)的机制来实现的,这对于编写异步Rust代码的人来说有一些重要的影响。 这篇博文的目标读者是异步 Rust 的新用户。我将使用 Tokio 运行时作为示例,但这里提出的观点适用于任何异步运行时。 如果你只从这篇文章中记住一件事,那应该是: 切记 异步代码不应该长时间不到达.await。 (注:指的是运行中) Blocking vs. non-blocking code 编写一个可以同 …