[mess] [rust] Send and Sync

在 Rust 多线程中有两个基本的类型概念,称为 SendSync

Sync 是和其他语言比较类似的同步概念,表示这个类型的变量可以被多个线程安全地共享使用,具体的含义可以结合 Send 理解

Send 是 Rust 的所有权机制带来的概念,即一个变量是 Send 类型的,表示它的所有权可以在线程间安全地转移。一个类型是 Sync 的当且仅当它的引用是 Send

考察 Rc 指针的例子,因为 Rc 指针可以 clone 且不同 clone 的操作不保证原子性,所以如果将一个 Rc 的所有权转移到另一个线程,它和它的 clone 分别在两个线程里操作引用的对象,就有可能出现冲突。同样的,不能安全的传递 Rc 指针的引用,因为可以引用到 Rc 指针然后同时修改它引用的对象

猜你喜欢

转载自www.cnblogs.com/wander4096/p/9568139.html