Sobes.tech
Назад к вопросам
Junior — Middle
80

Какое назначение у типа синхронизации RWMutex в языке программирования?

Ответ от нейросети

sobes.tech AI

В языке Go тип RWMutex (Read-Write Mutex) используется для синхронизации доступа к общим ресурсам, позволяя нескольким горутинам одновременно читать данные, но блокируя запись, пока идет чтение, и наоборот.

Основное назначение RWMutex — повысить производительность в сценариях, где операций чтения значительно больше, чем записи. Он предоставляет два типа блокировок:

  • RLock() — блокировка для чтения, позволяет нескольким читателям одновременно получить доступ.
  • Lock() — блокировка для записи, эксклюзивный доступ.

Пример использования:

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 помогает эффективно управлять конкурентным доступом, минимизируя блокировки при частом чтении.