Send 与 Sync trait
-
Types that implement
Sendare safe to pass by value to another thread. They can be moved across threads. -
Types that implement
Syncare safe to pass by non-mut reference to another thread. They can be shared across threads. -
当一个 struct 中的元素都实现了
Sendtrait 时, 该 struct 类型也自动实现了Sendtrait. -
当一个 struct 中的元素都实现了
Synctrait 时, 该 struct 类型也自动实现了Synctrait.
以下类型实现了 Sync:
i32bool&strStringTcpStreamHashMap<T1, T2>
以下类型实现了 Send:
Cell<T>Receiver<T>
以下类型啥都没实现:
-
Rc<T> -
*mut u8 -
当使用
spawn()创建线程时, 它捕获的闭包 (closure) 必须都实现了Sendtrait. -
当把一个值通过
channel发送给另一个线程时, 该值必须实现Sendtrait.