當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。