Back to questions
Senior
8
Расскажите про горутины и чем они отличаются от потоков операционной системы.
Companies where asked
Алабуга
Answer from AI
sobes.tech AI
Горутины — это легковесные потоки выполнения в языке Go, которые управляются рантаймом Go, а не операционной системой. Они позволяют запускать множество конкурентных задач с минимальными затратами по памяти и времени на переключение контекста.
Отличия от потоков ОС:
- Легковесность: Горутины занимают гораздо меньше памяти (обычно несколько килобайт) по сравнению с потоками ОС.
- Планирование: Планировщик горутин встроен в рантайм Go и может эффективно переключать выполнение между горутинами без обращения к ОС.
- Масштабируемость: Можно запускать тысячи и даже миллионы горутин одновременно, что сложно с потоками ОС из-за их больших накладных расходов.
Пример создания горутины:
go func() {
fmt.Println("Hello from goroutine")
}()
Таким образом, горутины обеспечивают удобный и эффективный способ параллельного программирования в Go.