当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust RwLock.try_read用法及代码示例


本文简要介绍rust语言中 std::sync::RwLock.try_read 的用法。

用法

pub fn try_read(&self) -> TryLockResult<RwLockReadGuard<'_, T>>

尝试使用共享读取访问权限获取此 rwlock。

如果此时无法授予访问权限,则返回Err。否则,将返回一个 RAII 守卫,当共享访问被丢弃时将释放它。

此函数不会阻塞。

对于有争议的读取器或写入器是否首先获取锁的顺序,此函数不提供任何保证。

错误

如果RwLock中毒,该函数将返回 Poisoned 错误。每当写入者在持有独占锁时发生Panics时,RwLock就会中毒。 Poisoned 仅在本来可以获取锁的情况下才会返回。

如果由于已独占锁定而无法获取RwLock,则该函数将返回 WouldBlock 错误。

例子

use std::sync::RwLock;

let lock = RwLock::new(1);

match lock.try_read() {
    Ok(n) => assert_eq!(*n, 1),
    Err(_) => unreachable!(),
};

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::sync::RwLock.try_read。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。