Горутина — блок кода, который работает асинхронно. Объявляется через оператор go перед функцией. Главной горутиной является вызов функции main. Если завершается выполнение этой функции, то завершается и выполнение всей программы. Размер Системный поток имеет блок памяти фиксированного размера (стек), который зависит от операционной системы. Например, для Windows размер стека обычно 1 МБ. В Linux размер стека для потоков, как правило, составляет от 2 до 10 МБ, в зависимости от дистрибутива и настроек ядра. Размер стека горутины начинается с небольшого значения и может расширяться по мере необходимости. Минимальный размер стэка составляет 2 КБ. Максимальный зависит от архитектуры и равен 1 ГБ для 64-разрядной архитектуры, 250 МБ для 32-разрядной. Если размер стэка превышен (к примеру запустили бесконечную рекурсию), то приложение упадет с fatal error. Количество горутин ограничено только оперативной памятью системы. Планирование Потоки планируются в ядре. Горутины управляются рантаймом