Sobes.tech
Junior — Middle

Kdy je vhodné použít mechanismus RWMutex v programování pro správu sdíleného přístupu k prostředkům?

sobes.tech AI

Odpověď od AI

Mechanismus RWMutex v jazyce Go se doporučuje používat, když máte zdroj, ke kterému mohou současně přistupovat mnozí čtenáři, ale zápis musí být exkluzivní. RWMutex umožňuje několika gorutinám současně číst data bez vzájemného blokování, ale při zápisu blokuje přístup pro všechny.

To zvyšuje výkon v scénářích s častými operacemi čtení a vzácnými operacemi zápisu.

Příklad použití:

var mu sync.RWMutex
var data int

func readData() int {
    mu.RLock()         // zámek pro čtení
    defer mu.RUnlock()
    return data
}

func writeData(val int) {
    mu.Lock()          // exkluzivní zámek pro zápis
    defer mu.Unlock()
    data = val
}

Používejte RWMutex, když:

  • Čtení je časté a probíhá paralelně.
  • Zápis je vzácný a vyžaduje exkluzivní přístup.

Pokud jsou operace čtení a zápisu přibližně stejně časté, nebo je důležitá jednoduchost, je lepší použít obyčejný Mutex.