Встречается на собеседованиях • сегодня
Зачем нужен мьютекс в Python
Мьютекс (mutex, mutual exclusion) нужен для синхронизации доступа к общим ресурсам в многопоточных приложениях. Он предотвращает race condition, когда несколько потоков одновременно пытаются изменить одни и те же данные.
Пример с threading.Lock():
python
import threading
counter = 0
lock = threading.Lock()
def increment():
global counter
with lock: # Блокировка до завершения блока
counter += 1
threads = []
for _ in range(1000):
t = threading.Thread(target=increment)
threads.append(t)
t.start()
for t in threads:
t.join()
print(counter) # Гарантированно 1000
text
Без мьютекса значение `counter` могло бы быть меньше из-за перекрывающихся операций. Мьютекс обеспечивает атомарность критической секции. В Python GIL (Global Interpreter Lock) ограничивает параллелизм, но мьютексы всё равно важны для thread-safe операций.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы