¿Qué es una goroutine? ¿Por qué se la llama ligera? ¿Cuál es el tamaño inicial de memoria de una goroutine y cuál es el máximo?
sobes.tech AI
Respuesta de la IA
Горутина — это легковесный поток выполнения в языке Go, реализованный на уровне рантайма, а не операционной системы. Она позволяет выполнять функции параллельно с минимальными накладными расходами.
Её называют легковесной, потому что в отличие от системных потоков, горутины занимают очень мало памяти и быстро создаются. Это достигается за счёт динамического управления стеком и планировщика на уровне Go.
Начальный размер стека горутины обычно составляет около 2 КБ (в ранних версиях Go — 4 КБ), но стек может динамически расти и уменьшаться в зависимости от потребностей, достигая максимума в несколько мегабайт (обычно до 1 ГБ, но на практике редко требуется такой большой стек). Такой подход позволяет запускать тысячи и даже миллионы горутин одновременно без существенных затрат памяти.