Update src/advance-practice/overview.md

pull/1270/head
Sunface 1 year ago committed by GitHub
parent 58dcbe408e
commit 9ed81e2ad6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -72,7 +72,7 @@ Rust 语言的安全可靠性顺理成章的影响了 `tokio` 的可靠性,曾
虽然 `tokio` 对于大多数需要并发的项目都是非常适合的,但是确实有一些场景它并不适合使用:
- **并行运行 CPU 密集型的任务**。`tokio` 非常适合于 IO 密集型任务,这些 IO 任务的绝大多数时间都用于阻塞等待 IO 的结果,而不是刷刷刷的单 CPU。如果你的应用是 CPU 密集型(例如并行计算),建议使用 [`rayon`](https://github.com/rayon-rs/rayon),当然,对于其中的 IO 任务部分,你依然可以混用 `tokio`
- **并行运行 CPU 密集型的任务**。`tokio` 非常适合于 IO 密集型任务,这些 IO 任务的绝大多数时间都用于阻塞等待 IO 的结果,而不是刷刷刷的单 CPU。如果你的应用是 CPU 密集型(例如并行计算),建议使用 [`rayon`](https://github.com/rayon-rs/rayon),当然,对于其中的 IO 任务部分,你依然可以混用 `tokio`
- **读取大量的文件**。读取文件的瓶颈主要在于操作系统,因为 OS 没有提供异步文件读取接口,大量的并发并不会提升文件读取的并行性能,反而可能会造成不可忽视的性能损耗,因此建议使用线程(或线程池)的方式
- **发送少量 HTTP 请求**。`tokio` 的优势是给予你并发处理大量任务的能力,对于这种轻量级 HTTP 请求场景,`tokio` 除了增加你的代码复杂性,并无法带来什么额外的优势。因此,对于这种场景,你可以使用 [`reqwest`](https://github.com/seanmonstar/reqwest) 库,它会更加简单易用。

Loading…
Cancel
Save