From ae172f377092fcf3630d573469db7cdce56a8e41 Mon Sep 17 00:00:00 2001 From: Unisko PENG Date: Mon, 3 Apr 2023 10:11:14 +0800 Subject: [PATCH] Update Ch20 and optimize .gitignore --- .gitignore | 1 + ...inal_Project_Building_a_Multithreaded_Web_Server.md | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index fcffd36..4d17e7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ book target Cargo.lock +*.html diff --git a/src/Ch20_Final_Project_Building_a_Multithreaded_Web_Server.md b/src/Ch20_Final_Project_Building_a_Multithreaded_Web_Server.md index b6ea69f..4a109f7 100644 --- a/src/Ch20_Final_Project_Building_a_Multithreaded_Web_Server.md +++ b/src/Ch20_Final_Project_Building_a_Multithreaded_Web_Server.md @@ -566,3 +566,13 @@ fn main() { ``` *清单 20-11:为每个 TCP 流生成一个新线程* + +如同咱们在第 16 章中所学到的,`thread::spawn` 讲创建出一个新线程,并于随后在新线程中,运行那个闭包中的代码。当咱们运行此代码,并在浏览器中加载 `/sleep`,随后在另外两个浏览器 Tab 页中加载 `/`,咱们就会看到到 `/` 的请求就不必等待 `/sleep` 请求完毕了。不过,如同咱们曾提到过的,因为咱们正不带任何限制地构造新线程,而最终将使系统不堪重负。 + + +#### 创建有限数目的线程 + +**Creating a Finite Number of Threads** + + +