Sobes.tech
Назад к вопросам
Principal
8

Что такое горутина, чем она отличается от потока ОС?

Компании, где спрашивали
AlfaCapture

Ответ от нейросети

sobes.tech AI

Горутина — это легковесный поток выполнения, реализованный на уровне языка (например, в Go). В отличие от потоков ОС, горутины управляются рантаймом языка, а не ядром операционной системы.

Основные отличия:

  • Легковесность: горутины занимают гораздо меньше памяти (обычно несколько килобайт стека), тогда как поток ОС требует гораздо больше ресурсов.
  • Планирование: горутины планируются планировщиком внутри рантайма языка, что позволяет эффективно переключать контекст без системных вызовов.
  • Масштабируемость: можно запускать тысячи и даже миллионы горутин, тогда как с потоками ОС такой масштаб часто невозможен из-за ограничений ресурсов.

Пример на Go:

func main() {
    go func() {
        fmt.Println("Горутина работает")
    }()
    time.Sleep(time.Second) // Ждем, чтобы горутина успела выполниться
}

Здесь go запускает функцию как горутину, которая выполняется параллельно с основным потоком.