Sobes.tech
Junior — Middle

Koja je svrha tipa sinhronizacije RWMutex u programskom jeziku?

sobes.tech АИ

Одговор од АИ

U jeziku Go, tip RWMutex (Read-Write Mutex) koristi se za sinhronizaciju pristupa zajedničkim resursima, omogućavajući više gorutina da istovremeno čitaju podatke, ali blokira pisanje dok je čitanje u toku, i obrnuto.

Glavna svrha RWMutex je poboljšanje performansi u scenarijima gde su operacije čitanja znatno češće od operacija pisanja. On pruža dva tipa zaključavanja:

  • RLock() — zaključavanje za čitanje, omogućava više čitaoca da istovremeno pristupaju.
  • Lock() — zaključavanje za pisanje, ekskluzivni pristup.

Primer upotrebe:

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
}

Na ovaj način, RWMutex pomaže efikasno upravljanje konkurentnim pristupom, minimizirajući blokade pri čestom čitanju.