Sobes.tech
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.* структуры дают более низкоуровневый контроль.