mutex --- module mutex

Module mutex cung cấp một nguyên thủy loại trừ lẫn nhau để bảo vệ các phần quan trọng của mã hoặc dữ liệu dùng chung khỏi truy cập đồng thời bởi một routine dịch vụ ngắt và luồng chính.

Việc lấy và giải phóng khóa được thực hiện thông qua context manager (câu lệnh with), lệnh này sẽ chặn cho đến khi mutex có sẵn. Phương thức Mutex.test() không chặn cũng được cung cấp.

Ví dụ:

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 -- đối tượng mutex

class mutex.Mutex

Tạo một đối tượng mutex ở trạng thái mở khóa.

release() None

Mở khóa mutex. Phát sinh mutex.MutexException nếu mutex hiện không bị khóa.

test() bool

Cố gắng lấy mutex theo cách không chặn. Trả về True nếu thành công và False nếu mutex đã bị khóa.

Để lấy mutex theo cách chặn, hãy sử dụng instance như một context manager (câu lệnh with). Mutex sẽ được giải phóng tự động khi thoát.

Ngoại lệ

exception mutex.MutexException

Lớp con của OSError. Được phát sinh bởi Mutex.release khi mutex đã ở trạng thái mở khóa.