С какого значения начинается стек в горутине

«С какого значения начинается стек в горутине» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Стек горутины в Go начинается с небольшого размера (обычно 2 КБ) и динамически растёт или уменьшается по мере необходимости.

package main

import (
    "runtime"
    "
)

func main() {
    var startStackSize int
    go func() {
        startStackSize = runtime.Stack(nil, false)
    }()
    runtime.Gosched() // Даём горутине выполниться
    println(startStackSize) // Примерный начальный размер стека
}

Точный начальный размер зависит от версии Go и архитектуры. В современных версиях (1.20+) стек обычно начинается с 2 КБ, но это деталь реализации и может меняться. При нехватке места стек автоматически увеличивается.