From 64acf06feae17b1083e8d469ac5b16b85b87c97a Mon Sep 17 00:00:00 2001 From: KaiserY Date: Sat, 21 Jun 2025 09:24:13 +0800 Subject: [PATCH] update ch17-06 --- src/ch17-06-futures-tasks-threads.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch17-06-futures-tasks-threads.md b/src/ch17-06-futures-tasks-threads.md index f821648..b08b411 100644 --- a/src/ch17-06-futures-tasks-threads.md +++ b/src/ch17-06-futures-tasks-threads.md @@ -3,7 +3,7 @@ -正如我们在[第十六章][ch16]所见,线程提供了一种并发的方式。在这一章节我们见过了另一种方式:通过 future 和流来使用异步。如果你好奇何时选择一个而不是另一个,答案是:视具体情况而定!同时在很多场景下,选择并非线程**或**异步而是线程**和**异步。 +正如我们在[第十六章][ch16]所见,线程提供了一种并发的方式。在这一章节我们见过了另一种方式:通过 future 和流来使用异步。如果你好奇何时选择一个而不是另一个,答案是:视具体情况而定!同时在很多场景下,我们不应只选择线程**或**异步,而应同时考虑线程**和**异步两者。 几十年来很多操作系统已经提供了基于线程的并发模型,因此很多编程语言也对其提供了支持。然而这些模型并非没有取舍。在很多操作系统中,它们为每一个线程使用了不少的内存,同时启动和停止带来了一些开销。线程也只有当你的操作系统和硬件支持它们的时候才是一个选项。不同于主流的桌面和移动电脑,一些嵌入式系统根本没有操作系统,因此也就没有线程。