Назад к вопросам
Avito
Junior — Middle
75
Каковы преимущества использования горутин по сравнению с потоками (threads)?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Горутины в Go — это легковесные потоки, которые управляются рантаймом Go, а не операционной системой. Их преимущества по сравнению с классическими потоками:
- Меньшее потребление памяти: Горутины занимают несколько килобайт памяти, тогда как потоки — мегабайты.
- Быстрое создание и переключение: Запуск и переключение между горутинами происходит гораздо быстрее.
- Простота синхронизации: Go предоставляет каналы для безопасного обмена данными между горутинами, что упрощает конкурентное программирование.
- Масштабируемость: Можно запускать тысячи и даже миллионы горутин одновременно.
Пример создания горутины:
func sayHello() {
fmt.Println("Hello from goroutine")
}
func main() {
go sayHello() // запускаем горутину
time.Sleep(time.Second) // ждем, чтобы горутина успела выполниться
}