Как на самом деле устроены каналы в Golang? | Golang channels internals
Разбираемся со внутренним устройством каналов: как реализована потокобезопасноть, как в буферизированном канале хранятся данные, какие интересные оптимизации там есть, как работает оператор Select, как каналы закрываются и др.
----
❤️ Если у вас есть желание поддержать развитие канала:
- 👾 Мой канал в Telegram:
- 🗣 Чат в Telegram: zsSZ63wEJDs3NGVi
- 👀 Golang Digest: - мои регулярные подборки интересных материалов по Go.
----
Другие мои видео про внутреннюю реализацию Go:
Map:
Slice:
Тайминги:
00:00 Вступление
00:38 Какие свойства каналов интересно изучить?
01:22 Проектирование каналов
01:32 В какой области памяти хранятся каналы?
02:00 Структура канала
04:08 Реализация свойств: goroutine-safe и FIFO
05:04 Как работают буфер канала и mutex
07:18 Передача данных в канал
08:21 Получение данных из канала
08:38 Переполнение буфера
09:05 Как устроен планировщик (Scheduler)
10:14 Как поставить горутину на паузу
10:56 Как разбудить горутину: очередь спящих горутин - sendq
13:49 Чтение из переполненного канала
15:57 Пробуждение спящей горутины Sender
17:43 Чтение из пустого канала
18:44 Передача данных напрямую между стэками двух горутин
19:11 Небуферизированные каналы
19:37 Итоги по изучению интересных свойств каналов
20:35 Изучаем код реализации каналов
28:22 Изучаем поведение канала вживую с помощью дебагера
35:23 Как работает Select
37:14 Закрытие канала
38:13 Код закрытия канала
39:20 Итоги: почему каналы спроектированны именно так?
40:48 Заключение
#golang #ntuzov
1 view
730
320
1 hour ago 00:00:00 1
24 мая ! Запуск Акции + Заработок в интернете! Доходы от 1000$ в месяц! Начало в 19:10 Москвы
2 hours ago 01:02:21 1
Какой будет буферная зона Путина, чем опасен Золотой купол Трампа и началось ли летнее наступление
3 hours ago 00:02:20 1
Мужчина - представитель Бога, а не Бог Энвер Измайлов
5 hours ago 00:09:15 1
Атака с разных направлений. Контратака началась ОБСТАНОВКА ТЯЖЕЛАЯ
5 hours ago 00:17:02 1
ДЕЛАЙ КАЖДОЕ УТРО и проживешь до 100 лет | 15 МИНУТ для активации всего тела
5 hours ago 00:05:49 1
АДМИНИСТРИРОВАНИЕ LINUX С НУЛЯ. Уроки для начинающих линуксоидов
5 hours ago 00:58:41 1
99% людей НЕ ЗНАЮТ эти Факты о Вьетнаме
5 hours ago 00:12:00 1
Как молдавские политики не замечают войну в Украине/ @LittleCountry_md
5 hours ago 00:01:07 2
Какой ты фрукт. #рекомендацииютуба #позитивнаяэнергия #силасознания #сильна #здороваяэнергия #фрукты
5 hours ago 00:07:47 1
📹 МОЩНЫЕ ДЕНЕЖНЫЕ АФФИРМАЦИИ ОТ НАТАЛЬИ ПРАВДИНОЙ 💰✨
5 hours ago 00:14:36 1
За что воюем? Нас готовятся лишить и пенсий и зарплат
5 hours ago 00:19:49 1
Украли 200 миллиардов! Так ИМ ещё НЕ хватило! Пришёл им КОНЕЦ!
5 hours ago 00:17:58 1
Рав Финкель: Кто похитил у христиан подлинные Евангелия?