mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-03-15 03:40:29 +08:00
Update Ch15
This commit is contained in:
parent
a57a626b1e
commit
4dbffe7348
@ -627,9 +627,9 @@ $ cargo run
|
||||
|
||||
请将 `Rc<T>` 设想为客厅里的一台电视。在有人进来看电视时,他们会打开他。其他人可以进入客厅并观看电视。当最后一人离开客厅时,他们会关掉电视,因为他已不再被使用了。如果有人在其他人还在看电视的情况下关掉电视,剩下的看电视的人就会哗然!
|
||||
|
||||
当咱们打算在内存堆上给咱们程序多个部分,分配用来读取的一些数据,且无法确定出,在编译时那些部分将最后用到这些数据时,咱们就会用到这个 `Rc<T>` 类型。若咱们清楚那个部分将最后结束,那么就可以只把那个部分,构造为该数据的所有者,同时在编译时强制用到的一般所有权规则,就能发挥作用。
|
||||
当我们想在内存堆上分配一些数据给程序的多个部分读取,且无法在编译时确定哪个部分会最后使用完这些数据时,我们就会使用 `Rc<T>` 类型。如果我们知道哪个部分会最后完成,我们就可以让那个部分成为数据的所有者,而在编译时执行的正常所有权规则就会生效。
|
||||
|
||||
请注意 `Rc<T>` 只适用于单线程的场景(only for use in single-threaded scenarios)。在第 16 章中讨论到并发时,就会讲到多线程程序中,怎样完成引用计数。
|
||||
请注意 `Rc<T>` 仅适用于单线程场景,only for use in single-threaded scenarios。当咱们在第 16 章中讨论并发时,咱们将接收如何在多线程程序中进行引用计数。
|
||||
|
||||
|
||||
### 使用 `Rc<T>` 来共用数据
|
||||
|
Loading…
Reference in New Issue
Block a user