From cf65e6ee9c8782d29ad9d98d4c514e34ab13e0ea Mon Sep 17 00:00:00 2001 From: will-2012 <117156346+will-2012@users.noreply.github.com> Date: Fri, 17 May 2024 13:58:05 +0800 Subject: [PATCH] Update 02_why_async.md --- src_zh-CN/01_getting_started/02_why_async.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_zh-CN/01_getting_started/02_why_async.md b/src_zh-CN/01_getting_started/02_why_async.md index 7e6eb3a5..92a40a4b 100644 --- a/src_zh-CN/01_getting_started/02_why_async.md +++ b/src_zh-CN/01_getting_started/02_why_async.md @@ -30,7 +30,7 @@ Rust 中异步的首选替代是使用 OS 线程,可以直接通过 `std::thre **OS 线程** 适合少量任务,因为线程会有 CPU 和内存开销。生成和切换线程是代价相当昂贵,甚至闲置的线程也会消耗系统资源。一个线程池库可以减轻这些开销,但并不能全部健康。然而,线程能让你重新利用存在的同步代码,而不需要大改源代码——不需要特别的编程模型。一些操作系统中,你也可以改变线程的优先级,这对于驱动或者其他延迟敏感的应用很有用。 -**异步** 极大地降低了 CPU 和内存开销,尤其是再负载大量越过IO 边界的任务,例如服务器和数据库。同样,你可以处理比 OS 线程更高数量级的任务,因为异步运行时使用少量(昂贵的)线程来处理大量(便宜的)任务。然而,异步 Rust 会导致更大的二进制体积,因为异步函数会生成状态机,并且每个可执行文件都会绑定一个异步运行时。 +**异步** 极大地降低了 CPU 和内存开销,尤其是在负载大量越过IO 边界的任务,例如服务器和数据库。同样,你可以处理比 OS 线程更高数量级的任务,因为异步运行时使用少量(昂贵的)线程来处理大量(便宜的)任务。然而,异步 Rust 会导致更大的二进制体积,因为异步函数会生成状态机,并且每个可执行文件都会绑定一个异步运行时。 最后一点,异步编程并没有 *更优于* 线程模型,不过它们是不一样的。如果你不需要由于性能原因使用异步,线程通常是个更简单的替换。