Wrapper Types
Rust有多种 “封装 “类型,如RefCell
和Mutex
,它们为值提供了特殊行为。访问这些值可能会耗费大量的时间。如果多个这样的值通常是一起访问的,那么最好将它们放在一个包装器中。
例如,这样的结构。
#![allow(unused)] fn main() { use std::sync::{Arc, Mutex}; struct S { x: Arc<Mutex<u32>>, y: Arc<Mutex<u32>>, } }
也许这样更典型。
#![allow(unused)] fn main() { use std::sync::{Arc, Mutex}; struct S { xy: Arc<Mutex<(u32, u32)>>, } }
这是否有助于性能,将取决于值的具体访问模式。 Example.