Rust 程序设计语言 简体中文版 1.85.0
当实例离开作用域 Rust 会自动调用 drop,并调用我们指定的代码。变量以被创建时相反的顺 序被丢弃,所以 d 在 c 之前被丢弃。这个例子的作用是给了我们一个 drop 方法如何工作的可 视化指导,不过通常需要指定类型所需执行的清理代码而不是打印信息。 不幸的是,禁用自动 drop 功能并不是一件容易的事。通常也不需要禁用 drop ;整个 Drop trait 存在的意义在于其是自动 缩写。引用计数意味着记录一个值的引用数量来知晓这个值是否仍在被使用。如果某个值有零 个引用,就代表没有任何有效引用并可以被清理。 可以将其想象为客厅中的电视。当一个人进来看电视时,他打开电视。其他人也可以进来看电 视。当最后一个人离开房间时,他关掉电视因为它不再被使用了。如果某人在其他人还在看的 时候就关掉了电视,正在看电视的人肯定会抓狂的! Rc用于当我们希望在堆上分配一些内存供程序的多个部分读取,而且无法在编译时确定程 结合使用 future、任务和线程 正如我们在第十六章所见,线程提供了一种并发的方式。在这一章节我们见过了另一种方式: 通过 future 和流来使用异步。如果你好奇何时选择一个而不是另一个,答案是:视具体情况 而定!同时在很多场景下,我们不应只选择线程或异步,而应同时考虑线程和异步两者。 几十年来很多操作系统已经提供了基于线程的并发模型,因此很多编程语言也对其提供了支 持。然而这些模型并非没有取 0 码力 | 562 页 | 3.23 MB | 8 天前3
共 1 条
- 1