TGViewer
PRO Go PRO Go @pro_gofer · 3.3K subscribers
Post #685 667
Про горутины🔨

Раз уж завёл новый модуль, «Конкурентность», грех не рассказать, что в нём внутри, чуть подробнее, чем влезает в одну строчку анонса. Начну с первой главы — она про горутины, и с них, по-хорошему, начинается сам Go как язык для параллельной работы.

Горутина — это кусок кода, который выполняется не по очереди с остальной программой, а сам по себе, параллельно. Обычно код идёт строка за строкой, одна дожидается другой. Горутина — способ сказать «а вот эта часть пусть работает отдельно, не жди её, иди дальше».

В большинстве языков, чтобы так сделать, нужен отдельный объект-поток, пул под него, настройки размера — в общем, дело. В Go для этого есть одно слово.
go fetchWeather("Москва")
go fetchWeather("Питер")


Вот и всё, обе функции побежали сами по себе, а рантайм сам разложит их по реальным ядрам процессора. И не только эти две — тысячи горутин запросто уживаются там, где обычная ОС-шная нить уже давно бы легла. Горутина занимает пару килобайт стека, который при необходимости растёт, а не фиксированные мегабайты, как у настоящего потока, поэтому «запустить ещё одну» почти ничего не стоит.

Нюанс в том, что «запустить» и «дождаться» — это разные глаголы. Горутина не «выполнись прямо сейчас», а «выполнись, когда получится, а мы пока пойдём дальше».
func main() {
go fetchWeather("Москва")
}
// main уже закончился, а горутина, скорее всего, даже не успела стартовать

Если её явно не дождаться, main может преспокойно закончиться раньше, чем горутина хоть что-то сделает — и в результате тишина вместо данных.
Про то, как её правильно ждать (и что будет, если сделать это неправильно), — в новом модуле курса, PRO Go для продвинутых.

В честь начала учебного года и выхода модуля дарю вам скидку 20% на курс❤️. Скидка действует ровно неделю.
  • 👍 7
  • 🔥 2
More from @pro_gofer
  1. Oct 13, 2026Как восстановить доступ к курсу пока Stepik недоступен🙏 Stepik сейчас недоступен, но твоё…
  2. Oct 13, 2026Друзья, доброго дня! Как многие уже заметили, Stepik уже несколько дней не работает🥺 — ав…
  3. Oct 6, 2026#memes
  4. Oct 4, 2026Где хранить данные 💾 Классическая история. Написана первая серьёзная программа — консольн…
  5. Sep 28, 2026Вайбкодеры напряглись
  6. Sep 24, 2026sql.Open 🔌 Помню, как в первый раз полез из Go в базу и минут сорок не понимал, почему вс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →