Back to questions
Junior
4
Какие ещё способы синхронизации горутин существуют в Go помимо каналов?
Companies where asked
Позитив Технолоджис
Answer from AI
sobes.tech AI
Помимо каналов, в Go для синхронизации горутин можно использовать:
- sync.WaitGroup — позволяет ждать завершения группы горутин.
- sync.Mutex — мьютекс для защиты общих ресурсов от одновременного доступа.
- sync.RWMutex — мьютекс с разделением на чтение и запись.
- sync.Cond — условная переменная для уведомления горутин о наступлении события.
- atomic операции из пакета
sync/atomic— для атомарных операций с переменными без блокировок.
Пример использования WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// работа горутины
}()
wg.Wait() // ждем завершения всех горутин