From 48940b825dd4c05ca3d3d691253448a1ecc0bf41 Mon Sep 17 00:00:00 2001 From: Reid Date: Wed, 23 Aug 2023 19:38:24 +0800 Subject: [PATCH 1/3] typo --- src/advance-practice/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance-practice/overview.md b/src/advance-practice/overview.md index 362e56b7..5de14587 100644 --- a/src/advance-practice/overview.md +++ b/src/advance-practice/overview.md @@ -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) 库,它会更加简单易用。 From 525e72308f9527d8592db03090211d2d32620926 Mon Sep 17 00:00:00 2001 From: Reid Date: Fri, 25 Aug 2023 15:47:13 +0800 Subject: [PATCH 2/3] typo: src/advance-practice/spawning.md --- src/advance-practice/spawning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance-practice/spawning.md b/src/advance-practice/spawning.md index d63172bf..fbb15af3 100644 --- a/src/advance-practice/spawning.md +++ b/src/advance-practice/spawning.md @@ -184,7 +184,7 @@ help: to force the async block to take ownership of `v` (and any other 先别急着给它扣帽子,虽然我有时候也想这么做。。原因是它说的是类型必须活得比 `'static` 长,而不是值。当我们说一个值是 `'static` 时,意味着它将永远存活。这个很重要,因为编译器无法知道新创建的任务将存活多久,所以唯一的办法就是让任务永远存活。 -如果大家对于 `'&static` 和 `T: 'static` 较为模糊,强烈建议回顾下[该章节](https://course.rs/advance/lifetime/static.html)。 +如果大家对于 `&'static` 和 `T: 'static` 较为模糊,强烈建议回顾下[该章节](https://course.rs/advance/lifetime/static.html)。 #### Send 约束 From 9ed81e2ad6f1613eeec20b1f1b4c3d34fbc007d1 Mon Sep 17 00:00:00 2001 From: Sunface Date: Wed, 20 Sep 2023 17:09:28 +0800 Subject: [PATCH 3/3] Update src/advance-practice/overview.md --- src/advance-practice/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/advance-practice/overview.md b/src/advance-practice/overview.md index 5de14587..362e56b7 100644 --- a/src/advance-practice/overview.md +++ b/src/advance-practice/overview.md @@ -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) 库,它会更加简单易用。