pub struct ReadWriteLock { /* private fields */ }Expand description
读写分离锁
使用 parking_lot 实现的读写分离锁,比标准库 RwLock 提供更细粒度的控制。
Implementations§
Source§impl ReadWriteLock
impl ReadWriteLock
Sourcepub fn read<F, T>(&self, f: F) -> Twhere
F: FnOnce() -> T,
pub fn read<F, T>(&self, f: F) -> Twhere
F: FnOnce() -> T,
获取读锁
多个读者可以同时持有读锁。 当有写者活跃或等待时,读者会被阻塞。
Sourcepub fn write<F, T>(&self, f: F) -> Twhere
F: FnOnce() -> T,
pub fn write<F, T>(&self, f: F) -> Twhere
F: FnOnce() -> T,
获取写锁
写锁是排他的,同一时间只能有一个写者。 当有读者或写者活跃时,新的写者会被阻塞。
Sourcepub fn try_read_timeout<F, T>(&self, f: F, timeout: Duration) -> Option<T>where
F: FnOnce() -> T,
pub fn try_read_timeout<F, T>(&self, f: F, timeout: Duration) -> Option<T>where
F: FnOnce() -> T,
Sourcepub fn try_write_timeout<F, T>(&self, f: F, timeout: Duration) -> Option<T>where
F: FnOnce() -> T,
pub fn try_write_timeout<F, T>(&self, f: F, timeout: Duration) -> Option<T>where
F: FnOnce() -> T,
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ReadWriteLock
impl !RefUnwindSafe for ReadWriteLock
impl Send for ReadWriteLock
impl Sync for ReadWriteLock
impl Unpin for ReadWriteLock
impl UnsafeUnpin for ReadWriteLock
impl UnwindSafe for ReadWriteLock
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more