Как Go обрабатывает 1 000 000 задач, не перегружая RAM!?
CsMadeEz
0:00 / 0:00
Как Go обрабатывает 1 000 000 задач, не перегружая RAM!?
5 543 просмотра · 1 месяц назад
CsMadeEz
30,7 тыс. подписчиков
5 543 просмотра · 1 месяц назад
Все говорят, что Go-рутины — это всего лишь легковесные потоки в Go-параллельном программировании. Это не так — и к концу этого урока вы тоже так не скажете.
Мы создадим монитор доступности Go, который должен проверять 50 000 конечных точек, и используем его, чтобы выяснить, что именно происходит, когда вы вводите эти две буквы.
РАЗДЕЛЫ
0:00 Ресторан, где на каждый столик нанимают одного официанта
2:20 Весь трюк — две буквы, 50 000 чеков
4:12 Во сколько на самом деле обходится поток
6:34 Анатомия горутины
9:06 Планировщик — G, M и P
12:42 Параллелизм — это не конкуренция
14:31 Где горутины кусаются
17:18 Столики, а не официанты
ССЫЛКИ
Discord — / discord
Ko-fi — https://ko-fi.com/csmadeez
Buy Me a Chai (Индия) — https://buymeachai.ezee.li/CsMadeEz
ЧТО ВЫ УЗНАЕТЕ
• Почему 50 000 потоков расплавят ваш ноутбук: стеки 8 МБ, граница ядра и реальная стоимость переключения контекста
• Что такое горутина на самом деле — • Структура g, стек размером 2 КБ и как Go увеличивает стеки путем копирования, когда ОС не может этого сделать
• Планировщик G-M-P: очереди выполнения, кража работы и сетевой опросчик, который делает блокировку в сети бесплатной
• Почему параллелизм — это не конкуренция, и когда горутины действительно ускоряют ваш код
• Три ловушки: утечки горутин, неограниченное создание и гонки данных — с решениями
ДАЛЕЕ
Каналы — как все эти горутины общаются друг с другом, никогда не записывая одно и то же сообщение.
#golang #go #goconcurrency #Go programming #goroutines #Go runtime #concurrency #programming #softwareengineering #systemdesign #computerscience #backend #coding #data races #performance monitoring #stack allocation