Junior — Middle
Kada je preporučljivo koristiti mehanizam RWMutex u programiranju za upravljanje zajedničkim pristupom resursima?
sobes.tech АИ
Одговор од АИ
Механизам RWMutex у Go-у се препоручује када имате ресурс којем могу приступати многи читаоци истовремено, али запис мора бити ексклузиван. RWMutex омогућава више горутина да читају податке истовремено без блокирања једни других, али при запису блокира приступ за све.
Ово побољшава перформансе у сценаријима са честим операцијама читања и ретким операцијама писања.
Пример употребе:
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
}
Користите RWMutex када:
- Читање се дешава често и паралелно.
- Писање се ретко дешава и захтева ексклузиван приступ.
Ако су операције читања и писања приближно једнаке по учесталости, или ако је једноставност важна, боље је користити обичан Mutex.