From acfffa3ede1f002835ba79865de2d083855405b1 Mon Sep 17 00:00:00 2001 From: sunface Date: Thu, 6 Jan 2022 17:11:31 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=BE=AA=E7=8E=AF=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E4=B8=8Eweak?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- book.toml | 2 +- course-book/contents/.DS_Store | Bin 8196 -> 8196 bytes course-book/contents/SUMMARY.md | 3 +- .../contents/advance/lifetime/advance.md | 2 +- .../smart-pointer/circle-referrence.md | 293 ++++++++++++++++++ .../advance/smart-pointer/self-referrence.md | 72 ++++- course-book/contents/img/.DS_Store | Bin 6148 -> 8196 bytes course-book/contents/img/self-ref-01.png | Bin 0 -> 30658 bytes course-book/contents/img/self-ref-02.png | Bin 0 -> 80327 bytes .../contents/networking/async/pin-unpin.md | 2 + course-book/contents/practice/best-pratice.md | 5 +- 11 files changed, 373 insertions(+), 6 deletions(-) create mode 100644 course-book/contents/advance/smart-pointer/circle-referrence.md create mode 100644 course-book/contents/img/self-ref-01.png create mode 100644 course-book/contents/img/self-ref-02.png diff --git a/book.toml b/book.toml index 507abb87..d4264d1a 100644 --- a/book.toml +++ b/book.toml @@ -17,5 +17,5 @@ line-numbers = true [output.html.fold] enable = true -level = 2 +level = 1 diff --git a/course-book/contents/.DS_Store b/course-book/contents/.DS_Store index 0774f8b6f1d0658edcf984779ed485da49c9ae82..3b395cba367fd81d5e35cdcabfad66ce39817a6e 100644 GIT binary patch delta 198 zcmZp1XmOa}¥U^hRb!e$_{9xHUUnGZs$~r~>e=Rb< delta 56 zcmZp1XmOa}&nUYwU^hRb>}DQ;E+!5mLo*!(V*}I8^MqbAZhk4!#JI8S594Nbi61PR L<3)LZyq}B!02UJ% diff --git a/course-book/contents/SUMMARY.md b/course-book/contents/SUMMARY.md index 97ebe9cb..4dda6169 100644 --- a/course-book/contents/SUMMARY.md +++ b/course-book/contents/SUMMARY.md @@ -70,7 +70,8 @@ - [Drop释放资源](advance/smart-pointer/drop.md) - [Rc与Arc实现1vN所有权机制](advance/smart-pointer/rc-arc.md) - [Cell与RefCell内部可变性](advance/smart-pointer/cell-refcell.md) - - [Weak与自引用类型 todo](advance/smart-pointer/self-referrence.md) + - [Weak与循环引用](advance/smart-pointer/circle-referrence.md) + - [自引用](advance/smart-pointer/self-referrence.md) - [全局变量 todo](advance/global-variable.md) - [多线程 todo](advance/multi-threads/intro.md) - [线程管理 todo](advance/multi-threads/thread.md) diff --git a/course-book/contents/advance/lifetime/advance.md b/course-book/contents/advance/lifetime/advance.md index 4ff9d2ae..7c83468d 100644 --- a/course-book/contents/advance/lifetime/advance.md +++ b/course-book/contents/advance/lifetime/advance.md @@ -279,7 +279,7 @@ use(a); // | | - [项目地址](https://github.com/rust-lang/polonius) - [具体介绍](http://smallcultfollowing.com/babysteps/blog/2018/04/27/an-alias-based-formulation-of-the-borrow-checker/) -## Reborrow再借用 +# Reborrow再借用 学完`NLL`后,我们就有了一定的基础,可以继续学习关于借用和生命周期的一个高级内容:**再借用**。 先来看一段代码: diff --git a/course-book/contents/advance/smart-pointer/circle-referrence.md b/course-book/contents/advance/smart-pointer/circle-referrence.md new file mode 100644 index 00000000..f047f423 --- /dev/null +++ b/course-book/contents/advance/smart-pointer/circle-referrence.md @@ -0,0 +1,293 @@ +# Weak与循环引用 +本文分为上下两篇,试图彻底解决困扰大家已久的循环引用和自引用问题,因此难度较高,但是非常值得深入阅读,它会让你对Rust的理解上升到一个新的境界。 + +Rust的安全性是众所周知的,但是不代表它不会内存泄漏。一个典型的例子就是同时使用`Rc`和`RefCell`创建循环引用,最终这些引用的计数都无法被归零,因此`Rc`拥有的值也不会被释放清理。 + +## 何为循环引用 +关于内存泄漏,如果你没有充足的Rust经验,可能都无法造出一份代码来再现它: +```rust +use crate::List::{Cons, Nil}; +use std::cell::RefCell; +use std::rc::Rc; + +#[derive(Debug)] +enum List { + Cons(i32, RefCell>), + Nil, +} + +impl List { + fn tail(&self) -> Option<&RefCell>> { + match self { + Cons(_, item) => Some(item), + Nil => None, + } + } +} + +fn main() {} +``` + +这里我们创建一个有些复杂的枚举类型`List`,这个类型很有意思,它的每个值都指向了另一个`List`,而且得益于`Rc`的使用还允许多个值指向一个`List`: + + + +如上图所示,每个矩形框节点都是一个`List`类型,它们或者是拥有值且指向另一个`List`的的`Cons`,或者是一个没有值的终结点`Nil`。同时,由于`RefCell`的使用,每个`List`所指向的`List`还能够被修改。 + +下面来使用一下这个复杂的`List`枚举: +```rust +fn main() { + let a = Rc::new(Cons(5, RefCell::new(Rc::new(Nil)))); + + println!("a的初始化rc计数 = {}", Rc::strong_count(&a)); + println!("a指向的节点 = {:?}", a.tail()); + + // 创建`b`到`a`的引用 + let b = Rc::new(Cons(10, RefCell::new(Rc::clone(&a)))); + + println!("在b创建后,a的rc计数 = {}", Rc::strong_count(&a)); + println!("b的初始化rc计数 = {}", Rc::strong_count(&b)); + println!("b指向的节点 = {:?}", b.tail()); + + // 利用RefCell的可变性,创建了`a`到`b`的引用 + if let Some(link) = a.tail() { + *link.borrow_mut() = Rc::clone(&b); + } + + println!("在更改a后,b的rc计数 = {}", Rc::strong_count(&b)); + println!("在更改a后,a的rc计数 = {}", Rc::strong_count(&a)); + + // 下面一行println!将导致循环引用 + // 我们可怜的8MB大小的main线程栈空间将被它冲垮,最终造成栈溢出 + // println!("a next item = {:?}", a.tail()); +} +``` + +这个类型定义看着复杂,使用起来更复杂!不过排除这些因素,我们可以清晰看出: +1. 在创建了`a`后,紧接着就使用`a`创建了`b`,因此`b`引用了`a` +2. 然后我们又利用`Rc`克隆了`b`,然后通过`RefCell`的可变性,让`a`引用了`b` + +至此我们成功创建了循环引用`a`-> `b` -> `a` -> `b` ···· + +先来观察下引用计数: +```console +a的初始化rc计数 = 1 +a指向的节点 = Some(RefCell { value: Nil }) +在b创建后,a的rc计数 = 2 +b的初始化rc计数 = 1 +b指向的节点 = Some(RefCell { value: Cons(5, RefCell { value: Nil }) }) +在更改a后,b的rc计数 = 2 +在更改a后,a的rc计数 = 2 +``` + +在`main`函数结束前,`a`和`b`的引用计数均是`2`,随后`b`触发`Drop`,此时引用计数会变为`1`,并不会归`0`,因此`b`所指向内存不会被释放,同理可得`a`指向的内存也不会被释放,最终发生了内存泄漏。 + +下面一张图很好的展示了这种引用循环关系: + + +现在我们还需要轻轻的推一下,让塔米诺骨牌轰然倒塌。反注释最后一行代码,试着运行下: +```console +RefCell { value: Cons(5, RefCell { value: Cons(10, RefCell { value: Cons(5, RefCell { value: Cons(10, RefCell { value: Cons(5, RefCell { value: Cons(10, RefCell { +...无穷无尽 +thread 'main' has overflowed its stack +fatal runtime error: stack overflow +``` + +通过`a.tail`的调用,Rust试图打印出`a -> b ->a···`的所有内容,但是在不懈的努力后,`main`线程终于不堪重负,发生了[栈溢出](https://zhuanlan.zhihu.com/p/446039229)。 + +以上的代码可能并不会造成什么大的问题,但是在一个更加复杂的程序中,类似的问题可能会造成你的程序不断的分配内存、泄漏内存,最终程序会不幸**OOM**,当然这其中的CPU损耗也不可小觑。 + +总之,创建引用并不简单,但是也并不是完全遇不到,当你使用`RefCell>`或者类似的类型嵌套组合(具备内部可变性和引用计数)时,就要打起万分精神,前面可能是深渊! + +那么问题来了? 如果我们确实需要实现上面的功能,该怎么办?答案是使用`Weak`。 + +## Weak +`Weak`非常类似于`Rc`,但是与`Rc`持有所有权不同,`Weak`不持有所有权,它仅仅保存一份指向数据的弱引用:如果你想要访问数据,需要通过`Weak`指针的`upgrade`方法实现,该方法返回一个类型为`Option>>`的值。 + +看到这个返回,相信大家就懂了:何为弱引用?就是**不保证引用关系依然存在**,如果不存在,就返回一个`None`! + +因为`Weak`引用不计入所有权,因此它**无法阻止所引用的内存值被释放掉**, 而且`Weak`本身不对值的存在性做任何担保,引用的值还存在就返回`Some`,不存在就返回`None`。 + +#### Weak与Rc对比 +我们来将`Weak`与`Rc`进行以下简单对比: + +| `Weak` | `Rc` | +|--------|-------------| +| 不计数 | 引用计数 | +| 不拥有所有权 | 拥有值的所有权 | +| 不阻止值被释放(drop) | 所有权计数归零,才能drop | +| 引用的值存在返回Some,不存在返回None | 引用的值必定存在 | +| 通过`upgrade`取到`Option>`,然后再取值 | 通过`Deref`自动解引用,取值无需任何操作| + +通过这个对比,可以非常清晰的看出`Weak`为何这么弱,而这种弱恰恰非常适合我们实现以下的场景: + +- 持有一个`Rc`对象的临时引用,并且不在乎引用的值是否依然存在 +- 阻止`Rc`导致的循环引用,因为`Rc`的所有权机制,会导致多个`Rc`都无法计数归零 + +使用方式简单总结下:**对于父子引用关系,可以让父节点通过`Rc`来引用子节点,然后让子节点通过`Weak`来引用父节点**。 + +#### Weak总结 +因为Weak本身并不是很好理解,因此我们再来帮大家梳理总结下,然后再通过一个例子,来彻底掌握。 + +`Weak`通过`use std::rc::Weak`来引入,它具有以下特点: + +- 可访问,但没有所有权,不增加引用计数,因此不会影响被引用值的释放回收 +- 可由`Rc`调用`downgrade`方法转换成`Weak` +- `Weak`可使用`upgrade`方法转换成`Option>`,如果资源已经被释放,则`Option`的值是`None` +- 常用于解决循环引用的问题 + +一个简单的例子: +```rust +use std::rc::Rc; +fn main() { + // 创建Rc,持有一个值5 + let five = Rc::new(5); + + // 通过Rc,创建一个Weak指针 + let weak_five = Rc::downgrade(&five); + + // Weak引用的资源依然存在,取到值5 + let strong_five: Option> = weak_five.upgrade(); + assert_eq!(*strong_five.unwrap(), 5); + + // 手动释放资源`five` + drop(five); + + // Weak引用的资源已不存在,因此返回None + let strong_five: Option> = weak_five.upgrade(); + assert_eq!(strong_five, None); +} +``` + +需要承认的是,使用`Weak`让Rust本来就堪忧的代码可读性又下降了不少,但是。。。真香,因为可以解决循环引用了。 + +## 使用Weak解决循环引用 +理论知识已经足够,现在用两个例子来模拟下真实场景下可能会遇到的循环引用。 + +#### 工具间的故事 +工具间里,每个工具都有其主人,且多个工具可以拥有一个主人;同时一个主人也可以拥有多个工具,在这种场景下,就很容易形成循环引用,好在我们有`Weak`: +```rust +use std::rc::Rc; +use std::rc::Weak; +use std::cell::RefCell; + +// 主人 +struct Owner { + name: String, + gadgets: RefCell>>, +} + +// 工具 +struct Gadget { + id: i32, + owner: Rc, +} + +fn main() { + // 创建一个Owner + // 需要注意,该Owner也拥有多个`gadgets` + let gadget_owner : Rc = Rc::new( + Owner { + name: "Gadget Man".to_string(), + gadgets: RefCell::new(Vec::new()), + } + ); + + // 创建工具,同时与主人进行关联:创建两个gadget,他们分别持有gadget_owner 的一个引用。 + let gadget1 = Rc::new(Gadget{id: 1, owner: gadget_owner.clone()}); + let gadget2 = Rc::new(Gadget{id: 2, owner: gadget_owner.clone()}); + + // 为主人更新它所拥有的工具 + // 因为之前使用了`Rc`,现在必须要使用`Weak`,否则就会循环引用 + gadget_owner.gadgets.borrow_mut().push(Rc::downgrade(&gadget1)); + gadget_owner.gadgets.borrow_mut().push(Rc::downgrade(&gadget2)); + + // 遍历 gadget_owner的gadgets字段 + for gadget_opt in gadget_owner.gadgets.borrow().iter() { + + // gadget_opt 是一个 Weak 。 因为 weak 指针不能保证他所引用的对象 + // 仍然存在。所以我们需要显式的调用 upgrade() 来通过其返回值(Option<_>)来判 + // 断其所指向的对象是否存在。 + // 当然,Option为None的时候这个引用原对象就不存在了。 + let gadget = gadget_opt.upgrade().unwrap(); + println!("Gadget {} owned by {}", gadget.id, gadget.owner.name); + } + + // 在main函数的最后, gadget_owner, gadget1和daget2都被销毁。 + // 具体是,因为这几个结构体之间没有了强引用(`Rc`),所以,当他们销毁的时候。 + // 首先 gadget1和gadget2被销毁。 + // 然后因为gadget_owner的引用数量为0,所以这个对象可以被销毁了。 + // 循环引用问题也就避免了 +} +``` + +#### tree数据结构 +```rust +use std::cell::RefCell; +use std::rc::{Rc, Weak}; + +#[derive(Debug)] +struct Node { + value: i32, + parent: RefCell>, + children: RefCell>>, +} + +fn main() { + let leaf = Rc::new(Node { + value: 3, + parent: RefCell::new(Weak::new()), + children: RefCell::new(vec![]), + }); + + println!( + "leaf strong = {}, weak = {}", + Rc::strong_count(&leaf), + Rc::weak_count(&leaf), + ); + + { + let branch = Rc::new(Node { + value: 5, + parent: RefCell::new(Weak::new()), + children: RefCell::new(vec![Rc::clone(&leaf)]), + }); + + *leaf.parent.borrow_mut() = Rc::downgrade(&branch); + + println!( + "branch strong = {}, weak = {}", + Rc::strong_count(&branch), + Rc::weak_count(&branch), + ); + + println!( + "leaf strong = {}, weak = {}", + Rc::strong_count(&leaf), + Rc::weak_count(&leaf), + ); + } + + println!("leaf parent = {:?}", leaf.parent.borrow().upgrade()); + println!( + "leaf strong = {}, weak = {}", + Rc::strong_count(&leaf), + Rc::weak_count(&leaf), + ); +} + +``` + +这个例子就留给读者自己解读和分析,我们就不画蛇添足了:) + +## unsafe解决循环引用 +除了使用Rust标准库提供的这些类型,你还可以使用`unsafe`里的原生指针来解决这些棘手的问题,但是由于我们还没有讲解`unsafe`,因此这里就不进行展开,只附上[源码链接](https://codes.rs/unsafe/self-ref.html), 挺长的,需要耐心o,O + +虽然`unsfae`不安全,但是在各种库的代码中依然很常见用它来实现自引用结构,主要优点如下: + +- 性能高,毕竟直接用原生指针操作 +- 代码更简单更符合直觉: 对比下`Option>>` + + +## 总结 +本文深入讲解了何为循环引用以及如何使用`Weak`来解决,同时还结合`Rc`、`RefCell`、`Weak`等实现了两个有实战价值的例子,让大家对智能指针的使用更加融会贯通。 diff --git a/course-book/contents/advance/smart-pointer/self-referrence.md b/course-book/contents/advance/smart-pointer/self-referrence.md index 55a2c193..a5994366 100644 --- a/course-book/contents/advance/smart-pointer/self-referrence.md +++ b/course-book/contents/advance/smart-pointer/self-referrence.md @@ -1,3 +1,71 @@ -# 自引用与内存泄漏 +## 自引用 +本文分为上下两篇,试图彻底解决困扰大家已久的循环引用和自引用问题,因此难度较高,但是非常值得深入阅读,它会让你对Rust的理解上升到一个新的境界。 -https://www.reddit.com/r/rust/comments/rk3bff/parent_struct_that_contains_a_vector_of_children/ \ No newline at end of file +## 使用Pin来解决自引用 +Pin在后续章节会深入讲解,目前你只需要知道它可以固定住一个值,防止该值的所有权被转移。通过Pin也可以实现自引用的数据结构: +```rust +use std::marker::PhantomPinned; +use std::pin::Pin; +use std::ptr::NonNull; + +// 下面是一个自引用数据结构体,因为slice字段是一个指针, 指向了data字段 +// 我们无法使用普通引用来实现,因为违背了Rust的编译规则 +// 因此,这里我们使用了一个原生指针,通过NonNull来确保它不会为null +struct Unmovable { + data: String, + slice: NonNull, + _pin: PhantomPinned, +} + +impl Unmovable { + // To ensure the data doesn't move when the function returns, + // we place it in the heap where it will stay for the lifetime of the object, + // and the only way to access it would be through a pointer to it. + fn new(data: String) -> Pin> { + let res = Unmovable { + data, + // we only create the pointer once the data is in place + // otherwise it will have already moved before we even started + slice: NonNull::dangling(), + _pin: PhantomPinned, + }; + let mut boxed = Box::pin(res); + + let slice = NonNull::from(&boxed.data); + // we know this is safe because modifying a field doesn't move the whole struct + unsafe { + let mut_ref: Pin<&mut Self> = Pin::as_mut(&mut boxed); + Pin::get_unchecked_mut(mut_ref).slice = slice; + } + boxed + } +} + +fn main() { + let unmoved = Unmovable::new("hello".to_string()); + // The pointer should point to the correct location, + // so long as the struct hasn't moved. + // Meanwhile, we are free to move the pointer around. + let mut still_unmoved = unmoved; + assert_eq!(still_unmoved.slice, NonNull::from(&still_unmoved.data)); + + // Since our type doesn't implement Unpin, this will fail to compile: + // let mut new_unmoved = Unmovable::new("world".to_string()); + // std::mem::swap(&mut *still_unmoved, &mut *new_unmoved); +} +``` + + +## 三方库解决引用循环 +一些三方库也可以用来解决引用循环的问题,例如: + +1. https://github.com/Kimundi/owning-ref-rs +2. https://github.com/joshua-maros/ouroboros + +不过需要注意的是,这些库需要目标值的内存地址不会改变,因此`Vec`动态数组就不适合,因为当内存空间不够时,Rust会重新分配一块空间来存放该数组,这会导致内存地址的改变。 + + +## 总结 +本文深入讲解了何为引用循环以及如何使用Weak来解决,同时还结合`Rc`、`RefCell`、`Weak`等实现了两个有实战价值的例子,让大家对智能指针的使用更加融会贯通。 + +至此,智能指针一章即将结束(严格来说还有一个Mutex放在多线程一章讲解),而Rust语言本身的学习之旅也即将结束,后面我们将深入多线程、项目工程、应用实践、性能分析等特色专题,来一睹Rust在这些领域的风采。 \ No newline at end of file diff --git a/course-book/contents/img/.DS_Store b/course-book/contents/img/.DS_Store index a307d618b8ed9c41559ae72ef6b60f8ca3d20a60..a52b8907da5049537387dc1e1c5646a2b7e49a71 100644 GIT binary patch delta 341 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMAD6%nNH}hr%jz7$c**Q2SHn1>? zOy*&6=I3KbX2@sA1;SK@Jcg3Vc5Je$>wy~Q{Raaei-7@64TCO&0fW)x32b6&jIu;1 zHHIkdCPJwRMCnf=l$rvSinFGJR8B5nk=Pu=GLuP=pP?A&j~s?Hpc{*TtTdp1WZ0Ol vf>pg@tKWQ?$C{Z-f*Z(p1qIG#L5}atlletFC;Rhoa4<&m3j|HhWW( delta 111 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

BiN*FBx?lkw=KJF>a+*J{EH4gu`035 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 literal 0 HcmV?d00001 diff --git a/course-book/contents/img/self-ref-02.png b/course-book/contents/img/self-ref-02.png new file mode 100644 index 0000000000000000000000000000000000000000..c9fa03e0aa66c3ffc58f6394eb7a2d3d2b946663 GIT binary patch literal 80327 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 literal 0 HcmV?d00001 diff --git a/course-book/contents/networking/async/pin-unpin.md b/course-book/contents/networking/async/pin-unpin.md index 8c817489..2f1c26fa 100644 --- a/course-book/contents/networking/async/pin-unpin.md +++ b/course-book/contents/networking/async/pin-unpin.md @@ -1 +1,3 @@ # Pin、Unpin(todo) + +https://doc.rust-lang.org/std/pin/index.html#example-intrusive-doubly-linked-list \ No newline at end of file diff --git a/course-book/contents/practice/best-pratice.md b/course-book/contents/practice/best-pratice.md index 3fa07e4a..f7d518cd 100644 --- a/course-book/contents/practice/best-pratice.md +++ b/course-book/contents/practice/best-pratice.md @@ -10,4 +10,7 @@ https://www.reddit.com/r/rust/comments/rrgho1/what_is_the_recommended_way_to_use cargo watch ## 测试文件组织结构 -https://www.reddit.com/r/rust/comments/rsuhnn/need_a_piece_of_advice_about_organising_tests/ \ No newline at end of file +https://www.reddit.com/r/rust/comments/rsuhnn/need_a_piece_of_advice_about_organising_tests/ + +## git备份 +https://github.com/tkellogg/dura \ No newline at end of file