Немного IT

Горутины – главная киллер фича Go? О вытесняющей и кооперативной многозадачности

В новом выпуске мы обсудили технологические плюсы Go: главную киллерфичу – многопоточность, конкурентное/ассинхронное выполнение, и вытесняющую многозадачность. Поговорили о Goroutine, каналах, о кодогенерации и использовании профилировщиков.

Ведущие

  • Иван Соловьёв
  • Михаил Непряхин

Темы

  • Приветствие – 00:00:24
  • Многопоточное программирование как киллер фича в Go – 00:00:40
  • Концепция GMP модели – 00:01:49
  • Сравнение с многопоточностью на C# – 00:04:00
  • Как вытесняющая многозадачность выполняется в Go – 00:04:40
  • Как это выглядит на Python и С# – 00:07:18
  • Быстродействие горутин – 00:09:22
  • Расшифровываем GMP – 00:11:57
  • Переход от одной горутины к другой – 00:14:16
  • Механизмы синхронизации между горутинами – 00:16:45
  • Самые частые вопросы на собеседовании по Go (про каналы) – 00:17:31
  • Про Nats – 00:20:09
  • Еще пара слов о каналах (как в Go работает select) – 00:20:36
  • Понимание defer в Go – 00:22:14
  • Кейсы использования кодогенерации в Go – 00:26:22
  • Go-swagger – 00:32:30
  • Когда First API подход не приживается – 00:33:53
  • Опыт использования pprof golang – 00:36:21
  • Когда нужен debugger – 00:39:27
  • Режимы профилировщика – 00:42:06
  • Сравнение работы со строками в Rust – 00:43:46
  • Механизм создания исключения и его отлова (panic и recover) и когда её стоит использовать – 00:44:40
  • Еще немного о горутинах – 00:48:40