Sobes.tech
Junior — Middle

Czy mutex jest narzędziem synchronizacji wątków?

sobes.tech AI

Odpowiedź od AI

Tak, mutex (wzajemne wykluczenie) jest narzędziem synchronizacji wątków. W Go jest to struktura sync.Mutex, która pozwala ograniczyć jednoczesny dostęp do wspólnych zasobów, zapobiegając warunkom wyścigu. Gdy jeden wątek (goroutine) zdobędzie mutex, inne próbujące go zdobyć są blokowane do czasu jego zwolnienia.

Przykład użycia mutex w Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // zdobądź mutex
    defer mu.Unlock()   // zwolnij mutex
    counter++
}