Junior — Middle
Ar galite paaiškinti, kas yra tarpusavio išskyrimas (Mutex) ir kaip jis veikia?
sobes.tech AI
Atsakymas iš AI
Sąveikos išskyrimas (Mutex) yra sinchronizacijos mechanizmas, kuris garantuoja, kad tam tikru momentu tik viena gorutina (gija) gali pasiekti tam tikrą išteklių ar kodo kritinę sekciją.
Go kalboje tam naudojamas sync.Mutex tipas. Kai gorutina iškviečia Lock(), ji užrakina mutexą, ir kitos gorutinos, bandančios iškviesti Lock(), lauks, kol mutexas nebus atrakintas su Unlock().
Pavyzdys:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Šiame pavyzdyje increment saugiai padidina counter reikšmę, užkertant kelią kelių gorutinos vienalaikiam prieigai.