Rust 程序设计语言 简体中文版 1.85.0Connection established! Connection established! 有时,对于一次浏览器请求可能会打印出多条信息;原因可能是浏览器不仅请求页面,还请求 其他资源,比如出现在浏览器标签页中的 favicon.ico 图标。 这也可能是因为浏览器尝试多次连接服务端,因为服务端没有响应任何数据。当 stream 在循 环结束时离开作用域并被丢弃,其连接将作为 drop 实现的一部分被关闭。浏览器有时通过重 如何读取文 件或写入响应时只需要更新一处的代码。示例 21-9 中代码的行为与示例 21-8 完全相同。 好极了!我们现在有了一个 40 行左右 Rust 代码的小而简单的服务端,它对一个请求返回页 面内容而对所有其他请求返回 404 响应。 目前服务端运行于单线程中,这意味着它一次只能处理一个请求。让我们模拟一些慢请求来看 看这为何会成为一个问题。然后我们将修复它使得服务端能够同时处理多个请求。 21-11: 为每一个流新建一个线程 正如第十六章讲到的,thread::spawn 会创建一个新线程并在其中运行闭包中的代码。如果运 行这段代码并在在浏览器中加载 /sleep,接着在另两个浏览器标签页中加载 /,确实会发现 / 请求不必等待 /sleep 结束。不过正如之前提到的,这最终会使系统崩溃因为我们会无限制地创 建新线程。 你可能也会回想起第十七章中正是这一类情况才是 async 和 await0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













