Sobes.tech
Junior — Middle

Објасните шта је блокирање (Lock) у контексту мьютекса и зашто се користи.

sobes.tech АИ

Одговор од АИ

Блокирање (Lock) је механизам синхронизације који се користи за спречавање истовременог приступа више нитева или горутина заједничком ресурсу, како би се избегле услови трка и обезбедила исправност података.

У контексту mutex-а, блокирање значи да када једна нит узме (lock) mutex, друге нитеви који покушавају да га узму ће чекати док прва не ослободи (unlock) mutex.

Пример у Go-у:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()         // узми блокаду
    counter++         // критична секција
    mu.Unlock()       // ослободи блокаду
}

Овим се гарантује да само једна нит у одређеном тренутку извршава критичну секцију кода.