ReentrantLock — 재진입 뮤텍스

ReentrantLock — 재진입 뮤텍스

ReentrantLock는 재진입(re-entrant) 상호 배제 잠금이에요. nightly 전용 실험 API(reentrant_lock, #121440)이에요.

출처: Rust 공식 문서

본문

pub struct ReentrantLock<T: ?Sized> { /* private fields */ }

이 잠금은 다른 스레드들이 잠금이 사용 가능해질 때까지 블록해요. 이미 뮤텍스를 잠근 스레드는 같은 잠금을 다시 잠글 수 있어요(재진입 허용). 즉 같은 스레드가 중첩해서 잠금을 획득해도 데드락이 발생하지 않아요.

일반 Mutex와 달리 재진입이 가능하므로, 이미 잠금을 가진 스레드가 다시 lock을 호출해도 안전해요.

주요 메서드

pub const fn new(t: T) -> ReentrantLock<T>
pub fn lock(&self) -> ReentrantLockGuard<'_, T>
pub fn get_mut(&mut self) -> &mut T

더 알아보기 (Learn more)