Sobes.tech
Back to questions
Junior — Middle
95

Можешь перечислить различные типы и особенности горутин в языке Go?

Answer from AI

sobes.tech AI

В языке Go горутины — это легковесные потоки, которые управляются рантаймом Go. Самих "типов" горутин как таковых нет, но можно выделить особенности и варианты их использования:

  • Основные горутины — создаются с помощью ключевого слова go перед вызовом функции.
  • Детаченные горутины — горутины, которые запускаются и работают независимо, без ожидания их завершения.
  • Горутины с синхронизацией — используют каналы (chan) или другие механизмы синхронизации для обмена данными и координации.
  • Пул горутин — паттерн, когда создаётся ограниченное число горутин для обработки задач из очереди, что помогает контролировать параллелизм.

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

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

Горутины очень легковесны по сравнению с системными потоками, что позволяет запускать тысячи и даже миллионы горутин одновременно.