mutex — mutex 모듈#

mutex 모듈은 인터럽트 서비스 루틴과 메인 스레드에 의한 동시 접근으로부터 코드의 임계 구역이나 공유 데이터를 보호하기 위한 상호 배제(mutual-exclusion) 프리미티브를 제공합니다.

락 획득과 해제는 컨텍스트 관리자(with 문)를 통해 수행되며, 뮤텍스가 사용 가능해질 때까지 블록됩니다. 논블로킹 Mutex.test() 메서드도 제공됩니다.

예시:

from mutex import Mutex

mtx = Mutex()

# Acquire for a critical section (blocks if already held).
with mtx:
    # ... protected code, e.g. shared buffer access ...
    pass

# Or try without blocking.
if mtx.test():
    try:
        # ... protected code ...
        pass
    finally:
        mtx.release()

class Mutex – 뮤텍스 객체#

class mutex.Mutex#

잠금 해제된 뮤텍스 객체를 생성합니다.

release() None#

뮤텍스의 잠금을 해제합니다. 뮤텍스가 현재 잠겨 있지 않으면 mutex.MutexException을 발생시킵니다.

test() bool#

논블로킹 방식으로 뮤텍스 획득을 시도합니다. 성공하면 True를, 뮤텍스가 이미 잠겨 있으면 False를 반환합니다.

블로킹 방식으로 뮤텍스를 획득하려면 인스턴스를 컨텍스트 관리자(with 문)로 사용하십시오. 종료 시 뮤텍스가 자동으로 해제됩니다.

예외#

exception mutex.MutexException#

OSError의 서브클래스입니다. 뮤텍스가 이미 잠금 해제된 상태일 때 Mutex.release에 의해 발생합니다.