mon*_*kki 7 rust
标记包含特征的!Send字段(如Rc或NonNull)的类型的原因是什么Send?例如,标准库的LinkedList作品以这种方式:它包含Option<NonNull<_>>字段,它实现Send特质(时T为Send).
!Send
Rc
NonNull
Send
LinkedList
Option<NonNull<_>>
T
这是多么安全,这种类型的安全保障和方法有哪些?
rod*_*igo 5
看看理由的NonNull存在!Send:
NonNull指针不是Send因为它们引用的数据可能是别名.
但是NonNullin LinkedList是一个私有的实现细节.如果这种类型的人都知道内型T是Send和它的使用也Send-safe,(公共API中没有不安全),那么它可以重新引入的Send特质.
这个保证基本上归结为确保你不能获得内部类型的可变别名; 并确保没有意外的内部可变性(从不可变的内容中获取可变引用).
这些保证不是由NonNull他们提供的LinkedList.
归档时间:
6 年,10 月 前
查看次数:
66 次
最近记录: