#教程
Tokio 是 Rust 编程语言的异步运行时。它提供编写网络应用程序所需的构建基块。它给了灵活地针对各种系统,从具有数十个小型嵌入式设备的核心。
在高层次上,Tokio提供了几个主要组件:
- 用于执行异步代码的多线程运行时。
- 标准库的异步版本。
- 一个庞大的图书馆生态系统。
##Tokio在您的项目中的角色
以异步方式编写应用程序时,请启用它通过降低同时执行许多操作的成本,可以更好地扩展。但是,异步 Rust 代码不会自行运行,因此您必须选择一个 运行时来执行它。Tokio 库是使用最广泛的运行时, 超过所有其他运行时的使用量总和。
此外,Tokio还提供了许多有用的实用程序。异步编写时代码,不能使用 Rust 标准提供的普通阻塞 API 库,并且必须改用它们的异步版本。这些替代版本由 Tokio 提供,镜像 Rust 标准库的 API 哪里有意义。
##tokio的优势
本节将概述Tokio的一些优点。
##快
Tokio 速度很快,建立在 Rust 编程语言之上,而 Rust 编程语言本身就是快。这是本着 Rust 的精神完成的,目标是你不应该成为 能够通过手动编写等效代码来提高性能。
Tokio 是可扩展的,建立在 async/await 语言功能之上,该功能 本身是可扩展的。在处理网络时,速度是有限制的 由于延迟,您可以处理连接,因此缩放的唯一方法是 一次处理多个连接。使用异步/等待语言功能, 增加并发操作的数量变得非常便宜, 允许您扩展到大量并发任务。
##可靠
Tokio 是使用 Rust 构建的,这是一种赋予每个人权力的语言 构建可靠高效的软件。许多研究发现,大约~70%的高严重性安全漏洞 是内存不安全的结果。使用 Rust 消除了这整个类别应用程序中的错误。
Tokio 还非常注重提供一致的行为,没有意外。Tokio的主要目标是允许用户部署可预测的软件,这些软件将以可靠的响应时间日复一日地执行,并且没有不可预测的延迟峰值。
##容易
使用 Rust 的 async/await 功能,编写异步的复杂性申请量大幅下降。与Tokio的实用程序配对和充满活力的生态系统,编写应用程序轻而易举。
Tokio 在有意义时遵循标准库的命名约定。这允许轻松地将仅使用标准库编写的代码转换为代码 与Tokio一起写的。凭借 Rust 强大的类型系统,交付能力 正确的代码是无与伦比的。
##灵活
Tokio提供运行时的多种变体。一切从从多线程、工作窃取运行时到轻量级单线程运行。这些运行时中的每一个都带有许多旋钮,允许用户调整它们满足他们的需求。
##何时不使用Tokio
虽然Tokio对许多需要做很多事情的项目很有用同时,也有一些用例,Tokio不太合适。
- ● 通过在多个 CPU 上并行运行它们来加速 CPU 密集型计算 线程。Tokio 专为 IO 绑定应用而设计,其中每个 任务大部分时间都在等待 IO。如果唯一的事情你的 应用程序确实是并行运行计算,您应该使用人造丝。也就是说,仍然可以“混合搭配” 如果你需要同时做这两件事。
- ● 读取大量文件。虽然看起来Tokio对 只需要读取大量文件的项目,Tokio没有优势 这里与普通线程池相比。这是因为操作系统 通常不提供异步文件 API。
- ● 发送单个 Web 请求。Tokio给你带来优势的地方是 当您需要同时做许多事情时。如果您需要使用 用于异步 Rust 的库,例如 reqwest,但您不需要 要一次做很多事情,您应该更喜欢它的阻止版本 库,因为它将使您的项目更简单。使用Tokio仍然有效, 当然,但与阻塞 API 相比没有提供真正的优势。如果 库不提供阻塞 API,请参阅关于 使用同步代码桥接。