Что такое горутина? Почему её называют легковесной? Каков начальный размер памяти горутины и каков максимальный?

Горутина — это легковесный поток выполнения в языке Go, реализованный на уровне рантайма, а не операционной системы. Она позволяет выполнять функции параллельно с минимальными накладными расходами.

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

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

Горутина — это легковесный поток выполнения в языке Go, реализованный на уровне рантайма, а не операционной системы. Она позволяет выполнять функции параллельно с минимальными накладными расходами.

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

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

Горутина — это легковесный поток выполнения в языке Go, реализованный на уровне рантайма, а не операционной системы. Она позволяет выполнять функции параллельно с минимальными накладными расходами.

Её называют легковесной, потому что в отличие от системных потоков, горутины занимают очень мало памяти и быстро создаются. Это достигается за счёт динамического управления стеком и планировщика на уровне Go.

Начальный размер стека горутины обычно составляет около 2 КБ (в ранних версиях Go — 4 КБ), но стек может динамически расти и уменьшаться в зависимости от потребностей, достигая максимума в несколько мегабайт (обычно до 1 ГБ, но на практике редко требуется такой большой стек). Такой подход позволяет запускать тысячи и даже миллионы горутин одновременно без существенных затрат памяти.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее