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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Ключевые отличия:

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

Пример на Go:

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

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку