Rust 程序设计语言 简体中文版 1.85.0访问堆上的数据比访问栈上的数据慢,因为必须通过指针来访问。现代处理器在内存 中跳转越少就越快。继续类比,假设有一个服务员在餐厅里处理多个桌子的点菜。在 一个桌子报完所有菜后再移动到下一个桌子是最有效率的。从桌子 A 听一个菜,接着 桌子 B 听一个菜,然后再桌子 A,然后再桌子 B 这样的流程会更加缓慢。出于同样原 68/562Rust 程序设计语言 简体中文版 因,处理器在处理的数据彼此较近的时候(比如在栈上)比较远的时候(比如可能在 的另一个主要目标。并发编程(Concurrent programming),代表程序的不同部分相互独立地执行,而并行编程(parallel programming) 代表程序不同部分同时执行,这两个概念随着计算机越来越多的利用多处理器的优势而显得愈 发重要。由于历史原因,在此类上下文中编程一直是困难且容易出错的:Rust 希望能改变这 一现状。 起初,Rust 团队认为确保内存安全和防止并发问题是两个分别需要不同方法应对的挑战。随 需要等待来自于网络的数据。虽 然可以在部分数据就绪时就开始读取,但等待剩余数据可能还需要一段时间。即便数据全部就 绪了,视频文件也可能非常大,因此加载所有数据也会花费一些时间。虽然这可能只需要一两 秒,不过这对于一个现代处理器来说已经是非常长的时间了,因为它每秒可以执行数十亿次操 作。因此,如果能让 CPU 在等待网络调用完成的同时去处理别的工作就再好不过了。所以同 上操作系统会隐式地中断你的程序以便其它工作可以在网络操作进行的同时继续进行。0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













