Sobes.tech
Back to questions
Junior — Middle
48

Какое назначение у мьютекса при работе с потоками в Python?

Companies where asked
Баланс-ПлатформаБаланс-Платформа

Answer from AI

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 из-за одновременного доступа.