Junior — Middle
Kako se implementira mehanizam međusobnog isključivanja pomoću Mutex u jeziku Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go, za implementaciju međusobnog isključivanja (mutex) koristi se tip sync.Mutex. On omogućava zaštitu kritičnih delova koda od istovremenog pristupa od strane više gorutina, čime se sprečavaju uslovi trke.
Glavne operacije:
Lock()— zaključava mutex, onemogućavajući drugim gorutinama pristup.Unlock()— otključava mutex, omogućavajući drugim gorutinama da nastave.
Primer upotrebe:
package main
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
counter := 0
mu.Lock() // Zaključava mutex
counter++
fmt.Println("Brojač:", counter)
mu.Unlock() // Otključava mutex
}
U višestrukim nitnim okruženjima, mutex garantuje da samo jedna gorutina istovremeno izvršava kod između Lock() i Unlock(), čime se sprečavaju netačne promene zajedničkih podataka.