Back to questions
X5 group
Junior — Middle
79
Следует ли применять блокировки типа Mutex при выполнении операции чтения данных?
Companies where asked
Answer from AI
sobes.tech AI
Применение блокировок типа Mutex при чтении данных зависит от контекста:
- Если данные не изменяются (только чтение), то блокировки обычно не нужны — несколько горутин могут безопасно читать данные одновременно.
- Если данные могут изменяться параллельно, то для предотвращения гонок и получения консистентного состояния нужна синхронизация.
В Go для таких случаев часто используют sync.RWMutex, который позволяет множественные параллельные чтения и эксклюзивную блокировку для записи.
Пример:
var mu sync.RWMutex
var data int
// Чтение
mu.RLock()
value := data
mu.RUnlock()
// Запись
mu.Lock()
data = 42
mu.Unlock()
Таким образом, обычный Mutex для чтения может быть избыточен, лучше использовать RWMutex или другие механизмы, если чтений много и они не конфликтуют.