本文简要介绍rust语言中 std::sync::RwLock.write
的用法。
用法
pub fn write(&self) -> LockResult<RwLockWriteGuard<'_, T>>
以独占写入访问锁定此 rwlock,阻塞当前线程,直到它可以被获取。
当其他写入者或其他读取者当前有权访问该锁时,此函数不会返回。
返回一个 RAII 守卫,它会在丢弃时丢弃此 rwlock 的写访问。
错误
如果RwLock中毒,该函数将返回错误。每当写入者在持有独占锁时发生Panics时,RwLock就会中毒。获取锁时会返回错误。
Panics
如果当前线程已持有锁,则调用此函数时可能会出现紧急情况。
例子
use std::sync::RwLock;
let lock = RwLock::new(1);
let mut n = lock.write().unwrap();
*n = 2;
assert!(lock.try_read().is_err());
相关用法
- Rust RwLock.try_write用法及代码示例
- Rust RwLock.into_inner用法及代码示例
- Rust RwLock.read用法及代码示例
- Rust RwLock.try_read用法及代码示例
- Rust RwLock.new用法及代码示例
- Rust RwLock.is_poisoned用法及代码示例
- Rust RwLock.get_mut用法及代码示例
- Rust RwLock用法及代码示例
- Rust Result.unwrap_or_else用法及代码示例
- Rust RefCell.try_borrow_unguarded用法及代码示例
- Rust Ref.map用法及代码示例
- Rust RefMut.leak用法及代码示例
- Rust Ref.filter_map用法及代码示例
- Rust RefCell.replace_with用法及代码示例
- Rust Receiver.recv用法及代码示例
- Rust Range.is_empty用法及代码示例
- Rust Result.as_deref_mut用法及代码示例
- Rust Result.unwrap_or_default用法及代码示例
- Rust Rc.increment_strong_count用法及代码示例
- Rust Result.as_mut用法及代码示例
- Rust Result.map_or用法及代码示例
- Rust Result.err用法及代码示例
- Rust RangeTo用法及代码示例
- Rust Receiver.recv_timeout用法及代码示例
- Rust RangeInclusive.start用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::sync::RwLock.write。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。