Sobes.tech
Назад к вопросам
Junior — Middle
75

Каковы преимущества использования горутин по сравнению с потоками (threads)?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Горутины в Go — это легковесные потоки, которые управляются рантаймом Go, а не операционной системой. Их преимущества по сравнению с классическими потоками:

  • Меньшее потребление памяти: Горутины занимают несколько килобайт памяти, тогда как потоки — мегабайты.
  • Быстрое создание и переключение: Запуск и переключение между горутинами происходит гораздо быстрее.
  • Простота синхронизации: Go предоставляет каналы для безопасного обмена данными между горутинами, что упрощает конкурентное программирование.
  • Масштабируемость: Можно запускать тысячи и даже миллионы горутин одновременно.

Пример создания горутины:

func sayHello() {
    fmt.Println("Hello from goroutine")
}

func main() {
    go sayHello() // запускаем горутину
    time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}