Back to questions
Junior — Middle
95
Можешь перечислить различные типы и особенности горутин в языке Go?
Answer from AI
sobes.tech AI
В языке Go горутины — это легковесные потоки, которые управляются рантаймом Go. Самих "типов" горутин как таковых нет, но можно выделить особенности и варианты их использования:
- Основные горутины — создаются с помощью ключевого слова
goперед вызовом функции. - Детаченные горутины — горутины, которые запускаются и работают независимо, без ожидания их завершения.
- Горутины с синхронизацией — используют каналы (
chan) или другие механизмы синхронизации для обмена данными и координации. - Пул горутин — паттерн, когда создаётся ограниченное число горутин для обработки задач из очереди, что помогает контролировать параллелизм.
Пример создания простой горутины:
go func() {
fmt.Println("Hello from goroutine")
}()
Горутины очень легковесны по сравнению с системными потоками, что позволяет запускать тысячи и даже миллионы горутин одновременно.