Junior — Middle
Care este scopul tipului de sincronizare RWMutex în limbajul de programare?
sobes.tech AI
Răspuns de la AI
În limbajul Go, tipul RWMutex (Mutex de citire-scriere) este utilizat pentru a sincroniza accesul la resursele comune, permițând mai multor goroutines să citească datele simultan, dar blocând scrierea în timpul citirii și invers.
Scopul principal al RWMutex este de a îmbunătăți performanța în scenarii în care operațiile de citire sunt mult mai frecvente decât cele de scriere. Oferă două tipuri de blocări:
RLock()— blocare pentru citire, permite mai multor cititori să acceseze simultan.Lock()— blocare pentru scriere, acces exclusiv.
Exemplu de utilizare:
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
}
Astfel, RWMutex ajută la gestionarea eficientă a accesului concurent, minimizând blocajele în cazul citirilor frecvente.