Skip to content

Instantly share code, notes, and snippets.

@zhashkevych
Last active April 16, 2024 17:10
Show Gist options
  • Save zhashkevych/c6ab77d7e0a17ee4266bc9f817289651 to your computer and use it in GitHub Desktop.
Save zhashkevych/c6ab77d7e0a17ee4266bc9f817289651 to your computer and use it in GitHub Desktop.
Основные различия между потоками ОС и горутинами языка Go
Потоки Горутины
Потоки ОС управляются ядром ОС Горутины управляются "рантаймом" Go
Потоки ОС в основном имееют фиксированый размер в 1-2MB Горутины обычно имеют размер стэка 2KB
Размер стэка определяется во время компиляции и не может увеличиватся Размер стэка определяется во время рантайма и может расти вплоть до 1GB что возможно благодаря аллокации и освобождения места из хипа
У потоков нету простого способа коммуникации между собой. Такая коммуникация имеет большую задержку Горутины используют "каналы" для быстрого общения между собой с маленькой задержкой
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment