我有一个结构体,我想在多个线程中共享作为不可变引用。我使用“Arc”来实现,但是为了让Arc工作,我必须实现Struct的Send和Sync特质。
问题在于,《Rust Book》中写道,手动实现Send和Sync是不安全的。
那么解决方案是什么?
是否有其他方法可以在多个线程之间共享不可变引用?
Send
和 Sync
会在编译器确定安全时自动实现。两个文档都说明:
当编译器认为适合时,该特征将被自动实现。
nomicon 包含了更多关于类型 Send
或 Sync
的细节,但大多数类型都是 Send
的,除了: