Closed lisongqian closed 12 months ago
RwLock同时读写会阻塞,不会直接panic。我的Rust版本是1.71。
panic
原文的实例代码:
use std::sync::RwLock; fn main() { let lock = RwLock::new(5); // 同一时间只允许一个写 { let mut w = lock.write().unwrap(); *w += 1; assert_eq!(*w, 6); // 以下代码会panic,因为读和写不允许同时存在 // 写锁w直到该语句块结束才被释放,因此下面的读锁依然处于`w`的作用域中 // let r1 = lock.read(); // println!("{:?}",r1); }// 写锁在此处被drop }
好的。。。如果可以的话,提个 PR也不错 :)
RwLock同时读写会阻塞,不会直接
panic
。我的Rust版本是1.71。原文的实例代码: