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() // ослободи блокаду
}
Овим се гарантује да само једна нит у одређеном тренутку извршава критичну секцију кода.