Назад к вопросам
Principal
8
Что такое горутина, чем она отличается от потока ОС?
Компании, где спрашивали
AlfaCapture
Ответ от нейросети
sobes.tech AI
Горутина — это легковесный поток выполнения, реализованный на уровне языка (например, в Go). В отличие от потоков ОС, горутины управляются рантаймом языка, а не ядром операционной системы.
Основные отличия:
- Легковесность: горутины занимают гораздо меньше памяти (обычно несколько килобайт стека), тогда как поток ОС требует гораздо больше ресурсов.
- Планирование: горутины планируются планировщиком внутри рантайма языка, что позволяет эффективно переключать контекст без системных вызовов.
- Масштабируемость: можно запускать тысячи и даже миллионы горутин, тогда как с потоками ОС такой масштаб часто невозможен из-за ограничений ресурсов.
Пример на Go:
func main() {
go func() {
fmt.Println("Горутина работает")
}()
time.Sleep(time.Second) // Ждем, чтобы горутина успела выполниться
}
Здесь go запускает функцию как горутину, которая выполняется параллельно с основным потоком.