Junior — Middle
Kedy je vhodné použiť mechanizmus RWMutex v programovaní na správu zdieľaného prístupu k zdrojom?
sobes.tech AI
Odpoveď od AI
Mechanizmus RWMutex v Go sa odporúča použiť, keď máte zdroj, ku ktorému môžu súčasne pristupovať viacerí čitatelia, ale zápis musí byť exkluzívny. RWMutex umožňuje viacerým gorutinám čítať dáta súčasne bez vzájomného blokovania, ale pri zápise blokuje prístup pre všetkých.
Toto zvyšuje výkon v scenároch s častými operáciami čítania a zriedkavými operáciami zápisu.
Príklad použitia:
var mu sync.RWMutex
var data int
func readData() int {
mu.RLock() // zámok pre čítanie
defer mu.RUnlock()
return data
}
func writeData(val int) {
mu.Lock() // exkluzívny zámok pre zápis
defer mu.Unlock()
data = val
}
Používajte RWMutex, keď:
- Čítanie je časté a paralelné.
- Zápis je zriedkavý a vyžaduje exkluzívny prístup.
Ak operácie čítania a zápisu sú približne rovnaké v frekvencii, alebo ak je dôležitá jednoduchosť, je lepšie použiť obyčajný Mutex.