Sobes.tech
Назад к вопросам
Senior
10

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

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

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

sobes.tech AI

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

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

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