Sobes.tech
Назад к вопросам
Senior
7

Что такое пессимистическая блокировка?

Компании, где спрашивали
Lenta Tech

Ответ от нейросети

sobes.tech AI

Пессимистическая блокировка — это подход к управлению конкурентным доступом к данным, при котором ресурс блокируется сразу при начале операции, чтобы предотвратить конфликты. То есть, когда транзакция хочет изменить данные, она захватывает блокировку, и другие транзакции ждут, пока блокировка не освободится.

В Go это может быть реализовано с помощью мьютексов (sync.Mutex), которые блокируют доступ к разделяемым данным:

var mu sync.Mutex

func updateData() {
    mu.Lock()   // пессимистическая блокировка
    defer mu.Unlock()
    // критическая секция
}

Такой подход гарантирует, что в один момент времени только одна горутина изменяет данные, но может привести к снижению параллелизма и блокировкам.