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