Junior — Middle
Jaký je účel typu synchronizace RWMutex v programovacím jazyce?
sobes.tech AI
Odpověď od AI
V jazyce Go se typ RWMutex (Read-Write Mutex) používá k synchronizaci přístupu ke sdíleným zdrojům, což umožňuje více gorutinám současně číst data, ale blokuje zápis, dokud je čtení aktivní, a naopak.
Hlavním cílem RWMutex je zvýšit výkon v scénářích, kde jsou operace čtení mnohem častější než zápisy. Poskytuje dva typy zámků:
RLock()— zámek pro čtení, umožňuje více čtenářům současně přístup.Lock()— zámek pro zápis, exkluzivní přístup.
Příklad použití:
var mu sync.RWMutex
var data int
func readData() int {
mu.RLock()
defer mu.RUnlock()
return data
}
func writeData(val int) {
mu.Lock()
defer mu.Unlock()
data = val
}
Tímto způsobem RWMutex pomáhá efektivně řídit konkurenční přístup a minimalizovat blokování při častém čtení.