代码点读机 / Rust / Send

Send Rust · 常用Trait

线程间安全转移所有权的标记 Trait;实现 Send 的类型可以安全地把所有权移动到另一个线程。

怎么用

自动为大多数类型实现,用于标记可跨线程转移

小例子

use std::thread;
let s = String::from("hi");
thread::spawn(move || {
    println!("{}", s);
}).join().unwrap();

运行结果

hi

提醒:Rc、裸指针等不是 Send;Cell<T> 只要 T 是 Send 就也是 Send(但它不是 Sync,不能多线程共享引用)

官方文档:https://doc.rust-lang.org/std/marker/trait.Send.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条