Sobes.tech
Senior

Was ist eine Goroutine? Warum wird sie als leichtgewichtig bezeichnet? Wie groß ist der Anfangsspeicher einer Goroutine und wie groß kann er maximal sein?

sobes.tech KI

Antwort von AI

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

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

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