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