|
|
|
@ -30,7 +30,7 @@ Rust 语言本身只提供了异步编程所需的基本特性,例如 `async/.
|
|
|
|
|
如果你只用 `tokio` ,那兼容性自然不是问题,至于难以上手,Rust 这么难,我们都学到现在了,何况区区一个异步运行时,在本书的帮忙下,这些都不再是个问题:)
|
|
|
|
|
|
|
|
|
|
## tokio简介
|
|
|
|
|
Tokio是一个纸醉金迷之地,只要有钱就可以为所欲为,哦,抱歉,走错片场了。`Tokio` 是 Rust 最优秀的异步运行时框架,它提供了写异步网络服务所需的几乎所有功能,不仅仅适用于大型服务器,还适用于小型嵌入式设备,它主要由以下组件构成:
|
|
|
|
|
tokio是一个纸醉金迷之地,只要有钱就可以为所欲为,哦,抱歉,走错片场了。`tokio` 是 Rust 最优秀的异步运行时框架,它提供了写异步网络服务所需的几乎所有功能,不仅仅适用于大型服务器,还适用于小型嵌入式设备,它主要由以下组件构成:
|
|
|
|
|
|
|
|
|
|
- 多线程版本的异步运行时,可以运行使用 `async/.await` 编写的代码
|
|
|
|
|
- 标准库中阻塞API的异步版本,例如`thread::sleep`会阻塞当前线程,`tokio`中就提供了相应的异步实现版本
|
|
|
|
@ -41,7 +41,7 @@ Tokio是一个纸醉金迷之地,只要有钱就可以为所欲为,哦,抱
|
|
|
|
|
|
|
|
|
|
**高性能**
|
|
|
|
|
|
|
|
|
|
因为快所以快,前者是 Rust 快,后者是 `tokio` 快。 `tokio` 在编写时充分利用了 Rust 提供的各种零抽象和高性能特性,而且贯彻了 Rust 的牛逼思想:如果你选择手写代码,那么最好的结果就是跟 `tokio` 一样快!
|
|
|
|
|
因为快所以快,前者是 Rust 快,后者是 `tokio` 快。 `tokio` 在编写时充分利用了 Rust 提供的各种零成本抽象和高性能特性,而且贯彻了 Rust 的牛逼思想:如果你选择手写代码,那么最好的结果就是跟 `tokio` 一样快!
|
|
|
|
|
|
|
|
|
|
以下是一张官方提供的性能参考图,大致能体现出 `tokio` 的性能之恐怖:
|
|
|
|
|
<img alt="tokio performance" src="/img/tokio-01.png" class="center" />
|
|
|
|
@ -59,6 +59,7 @@ Rust 语言的安全可靠性顺理成章的影响了 `tokio` 的可靠性,曾
|
|
|
|
|
同时 `tokio` 遵循了标准库的命名规则,让熟悉标准库的用户可以很快习惯于 `tokio` 的语法,再借助于 Rust 强大的类型系统,用户可以轻松地编写和交付正确的代码。
|
|
|
|
|
|
|
|
|
|
**使用灵活性**
|
|
|
|
|
|
|
|
|
|
`tokio` 支持你灵活的定制自己想要的运行时,例如你可以选择多线程 + 任务盗取模式的复杂运行时,也可以选择单线程的轻量级运行时。总之,几乎你的每一种需求在 `tokio` 中都能寻找到支持(画外音:强大的灵活性需要一定的复杂性来换取,并不是免费的午餐)。
|
|
|
|
|
|
|
|
|
|
### 劣势
|
|
|
|
|