Что такое мьютекс
Python
Senior
Без компании
Что такое мьютекс
Ответы
Мьютекс (mutex, от mutual exclusion) — это примитив синхронизации, который обеспечивает эксклюзивный доступ к общему ресурсу в многопоточной среде. Только один поток может захватить мьютекс, остальные будут ждать его освобождения.
Пример использования в Python с `threading`:
```
import threading
shared_resource = 0
lock = threading.Lock()
def increment():
global shared_resource
with lock: # Автоматически захватывает и освобождает
shared_resource += 1
threads = [threading.Thread(target=increment) for _ in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_resource) # Гарантированно 10
```
Ключевые особенности:
- Гарантирует атомарность операций
- Предотвращает race condition
- Может быть блокирующим (thread будет ждать) или неблокирующим (try_lock)
- В Python реализован через `threading.Lock`