Junior — Middle
Explica ce este o blocare (Lock) în contextul unui mutex și pentru ce este utilizată.
sobes.tech AI
Răspuns de la AI
Blocarea (Lock) este un mecanism de sincronizare utilizat pentru a preveni accesul simultan al mai multor fire sau goroutines la o resursă comună, pentru a evita condițiile de cursă și a asigura corectitudinea datelor.
În contextul unui mutex, blocarea înseamnă că atunci când un fir preia (lock) un mutex, alte fire care încearcă să-l preia vor aștepta până când primul îl eliberează (unlock).
Exemplu în Go:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock() // preia blocarea
counter++ // secțiune critică
mu.Unlock() // eliberează blocarea
}
Astfel, blocarea garantează că doar un fir execută secțiunea critică a codului într-un moment dat.