mutex — mutex modülü

mutex modülü, kodun kritik bölümlerini veya paylaşılan verileri, bir kesme hizmet rutini ve ana iş parçacığı tarafından eşzamanlı erişimden korumak için bir karşılıklı dışlama (mutual-exclusion) ilkeli sağlar.

Kilit alma ve serbest bırakma işlemi, mutex kullanılabilir olana kadar bloke eden bir bağlam yöneticisi (with ifadesi) aracılığıyla gerçekleştirilir. Ayrıca bloke etmeyen bir Mutex.test() yöntemi de sağlanır.

Örnek:

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 – mutex nesnesi

class mutex.Mutex

Kilitli olmayan bir mutex nesnesi oluşturur.

release() None

Mutex kilidini açar. Mutex şu anda kilitli değilse mutex.MutexException ortaya çıkarır.

test() bool

Mutex’i bloke etmeyen bir şekilde almaya çalışır. Başarılı olursa True, mutex zaten kilitliyse False döndürür.

Mutex’i bloke eden bir şekilde almak için örneği bir bağlam yöneticisi (with ifadesi) olarak kullanın. Mutex çıkışta otomatik olarak serbest bırakılır.

İstisnalar

exception mutex.MutexException

OSError sınıfının alt sınıfıdır. Mutex zaten kilitsiz durumdayken Mutex.release tarafından ortaya çıkarılır.