Назад к вопросам
Junior — Middle
65
Можете объяснить, как работает механизм мьютекса для синхронизации потоков?
Ответ от нейросети
sobes.tech AI
Мьютекс (mutex) — это механизм синхронизации, который используется для предотвращения одновременного доступа нескольких потоков к общему ресурсу. Он гарантирует, что в каждый момент времени только один поток может владеть мьютексом и, следовательно, работать с защищённым ресурсом.
Принцип работы:
- Поток пытается захватить мьютекс перед работой с ресурсом.
- Если мьютекс свободен, поток получает доступ.
- Если мьютекс уже захвачен другим потоком, текущий поток блокируется и ждёт освобождения.
- После завершения работы поток освобождает мьютекс, позволяя другим потокам продолжить.
В Python для работы с мьютексами используется класс Lock из модуля threading:
import threading
lock = threading.Lock()
# Пример использования
with lock:
# критическая секция — код, который должен выполняться только одним потоком
print("Поток работает с ресурсом")
Использование мьютекса помогает избежать гонок данных и обеспечивает корректную работу многопоточных программ.