Я почти уверен, что любой, кто изучал когда-либо Go, слышал, что «горутины похожи на легковесные потоки» и что «можно спокойно запускать сотни и тысячи горутин». Некоторые люди узнавали, что «горутина весит около 2 килобайт», скорее всего, из примечаний к релизу Go 1.4, и еще меньше…
Это вторая часть серии про горутины и рантайм Go. В ней три сюжета: стек, который переезжает по памяти как квартирант; вытеснение, которое прилетает сигналом операционной системы; и полный жизненный цикл горутины, который дословно объясняет каждую строку дампа паники. Первая часть рассказывала, почему потоки ОС дорогие и как Go дошел до схемы GMP: она не обязательна, но там завязка всей истории. Go читать
оригинал статьи: https://blog.devtrovert.com/p/goroutine-scheduler-revealed-youllВероятно, вы слышали о планировщике Go раньше, но насколько хорошо мы знает о том как он работает? Как он связывает горутины с потоками?Разберем по очереди операции, которые выполняет планировщик. Читать далее
Финал серии про горутины и рантайм Go. Здесь то, что происходит за пределами уютного мира G/M/P: системные вызовы, сеть, сборщик мусора. Плюс полный круг планировщика, после которого вывод GODEBUG=schedtrace читается как обычный лог, и все свежее из Go 1.22-1.27: рантайм, который начал делать работу за программиста. Go читать