Junior — Middle
Kokia yra RWMutex sinchronizacijos tipo paskirtis programavimo kalboje?
sobes.tech AI
Atsakymas iš AI
Go kalboje RWMutex (Skaitymo-rašymo mutex) tipas naudojamas bendrų išteklių prieigos sinchronizavimui. Jis leidžia kelioms gorutinoms vienu metu skaityti duomenis, tačiau blokuoja rašymą, kol vyksta skaitymas, ir atvirkščiai.
Pagrindinis RWMutex tikslas yra pagerinti našumą scenarijuose, kur skaitymo operacijos yra žymiai dažnesnės nei rašymo. Jis suteikia du užraktų tipus:
RLock()— skaitymo užraktas, leidžia keliems skaitytojams vienu metu gauti prieigą.Lock()— rašymo užraktas, išskirtinė prieiga.
Pavyzdys naudojimo:
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
}
Taip RWMutex padeda efektyviai valdyti konkurencingą prieigą ir sumažina užraktų skaičių dažnų skaitymų metu.