Назад к вопросам
Баланс-Платформа
Junior — Middle
49
Какое назначение у мьютекса при работе с потоками в Python?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Мьютекс (mutex) в Python используется для синхронизации потоков и предотвращения одновременного доступа к общим ресурсам. Он гарантирует, что в каждый момент времени только один поток может выполнять критическую секцию кода, защищённую этим мьютексом.
Это важно, чтобы избежать состояния гонки, когда несколько потоков одновременно изменяют одни и те же данные, что может привести к непредсказуемым результатам.
Пример использования мьютекса с модулем threading:
import threading
lock = threading.Lock()
shared_resource = 0
def increment():
global shared_resource
with lock: # Захватываем мьютекс
temp = shared_resource
temp += 1
shared_resource = temp
threads = [threading.Thread(target=increment) for _ in range(1000)]
for t in threads:
t.start()
for t in threads:
t.join()
print(shared_resource) # Ожидается 1000
Без мьютекса результат мог бы быть меньше 1000 из-за одновременного доступа.