Back to questions
Senior
1
Что из перечисленного является средствами синхронизации в Go? (каналы, sync.WaitGroup, sync.Mutex, sync.Cond)
Companies where asked
Лаборатория Касперского
Answer from AI
sobes.tech AI
В Go все перечисленные средства являются средствами синхронизации, но используются в разных сценариях:
- Каналы (channels) — основной механизм для коммуникации и синхронизации между горутинами. Позволяют передавать данные и блокируют отправителя/получателя до готовности.
- sync.WaitGroup — используется для ожидания завершения группы горутин. Позволяет главной горутине ждать, пока все дочерние завершатся.
- sync.Mutex — мьютекс для защиты критических секций, предотвращает одновременный доступ к разделяемым ресурсам.
- sync.Cond — условная переменная, позволяет горутинам ждать определенного условия и уведомлять друг друга о его наступлении.
Все они являются средствами синхронизации, но каналы — более идиоматичный способ в Go для обмена данными и синхронизации, в то время как sync.* структуры дают более низкоуровневый контроль.