Back to questions
Principal
8
Какие инструменты синхронизации есть в Go?
Companies where asked
AlfaCapture
Answer from AI
sobes.tech AI
В Go есть несколько основных инструментов синхронизации для управления конкурентным доступом к ресурсам:
- Mutex (sync.Mutex) — простой мьютекс для взаимного исключения, блокирует доступ к критической секции.
- RWMutex (sync.RWMutex) — расширенный мьютекс, позволяющий нескольким читателям одновременно читать, но блокирующий запись.
- WaitGroup (sync.WaitGroup) — позволяет ждать завершения группы горутин.
- Cond (sync.Cond) — условная переменная для уведомления и ожидания определённых условий.
- Atomic операции (sync/atomic) — низкоуровневые атомарные операции для безопасного изменения переменных без блокировок.
Пример использования Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Эти инструменты помогают безопасно работать с конкурентными процессами и горутинами в Go.