Send trait的std文档
Send trait的std文档
https://doc.rust-lang.org/std/marker/trait.Send.html
pub unsafe auto trait Send { }
可以跨线程边界传输的类型。
当编译器确定适当时,会自动实现此 trait。
非 Send
类型的一个示例是引用计数指针 rc::Rc
。 如果两个线程试图克隆指向相同引用计数值的 Rc
,它们可能会同时尝试更新引用计数,这是 未定义行为 因为 Rc
不使用原子操作。
它的表亲 sync::Arc
确实使用原子操作 (产生一些开销),因此它是 Send
。
有关更多详细信息,请参见 the Nomicon。