RwLock
RwLock 是 Rust 中的读写锁
use std::sync::RwLock;
fn main() {
let lock = RwLock::new(5);
{
let r1 = lock.read().unwrap();
let r2 = lock.read().unwrap();
assert_eq!(*r1, 5);
assert_eq!(*r2, 5);
} // drop 读锁
{
let mut w = lock.write().unwrap();
*w += 1;
assert_eq!(*w, 6)
// panic!!!
// let r1 = lock.read();
} // drop 写锁
}
当读与写同时发生时,程序会直接panic
。此时考虑使用try_write
和try_read
。