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++
}