022 Rust死灵书之污染

Rust
292
0
0
2022-04-12

介绍

本系列录制的视频主要放在B站上Rust死灵书学习视频

Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...

污染

  • 所有的非安全代码都必须保证最小异常安全性,因此并不是所有的类型都能保证最大异常安全性;
  • 异常发生时所有的东西都应该被销毁,例如:给一个线程传递一个Vec,而线程panic了,此时Vec的状态并不重要,因为它会被销毁掉。
  • 但是一些类型会在发生panic的时候偷偷隐藏数据的值(这种就需要特别的注意)。这些类型会在遇到panic时可能污染自己的。污染是指,通常会禁止其他人正常的使用它。例如标准库中的Mutex类型。(原因就是panic时,Mutex可能只修改了一半,因此污染自己,禁止使用)。