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.