Junior — Middle
Aký je účel typu synchronizácie RWMutex v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa typ RWMutex (Read-Write Mutex) slúži na synchronizáciu prístupu ku spoločným zdrojom, umožňujúc viacerým gorutinám súčasne čítať dáta, ale blokuje zápis, kým je čítanie aktívne, a naopak.
Hlavným cieľom RWMutex je zvýšiť výkon v scenároch, kde sú operácie čítania oveľa častejšie ako zápisy. Poskytuje dva typy zámkov:
RLock()— zámok pre čítanie, umožňuje viacerým čitateľom súčasný prístup.Lock()— zámok pre zápis, exkluzívny prístup.
Príklad použitia:
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 spôsobom RWMutex pomáha efektívne riadiť konkurenčný prístup a minimalizovať blokovania pri častom čítaní.