Sobes.tech
Junior — Middle

Ar mutex yra siūlų sinchronizavimo įrankis?

sobes.tech AI

Atsakymas iš AI

Taip, mutex (tarpusavio išskyrimas) yra sinchronizacijos įrankis siūlėms. Go kalboje tai yra struktūra sync.Mutex, leidžianti riboti vienu metu prieinamą bendrąsias išteklius ir užkirsti kelią lenktynių sąlygoms. Kai viena siūlė (gorutina) įgyja mutex, kitos, bandančios jį įgyti, yra blokuojamos iki tol, kol jis bus atlaisvintas.

Mutex naudojimo pavyzdys Go kalboje:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // įgyti mutex
    defer mu.Unlock()   // atlaisvinti mutex
    counter++
}