Без этих знаний твой Go-вайбкод положит прод | Пакет sync изнутри
Igor Panasyuk
Таймкоды: 00:00:00 - Введение 00:00:30 - В этом видео 00:01:41 - sync.WaitGroup, примеры использования 00:02:01 - Собственная наивная реализация sync.WaitGroup 00:03:08 - Введение в пакет sync 00:04:50 - Обзор случаев, когда sync.WaitGroup кидает панику 00:07:16 - Пример deadlock'a с sync.WaitGroup 00:08:03 - Обзор runtime очередей (sema) для примитивов синхронизации 00:09:40 - Обзор внутренней реаализации sync.WaitGroup 00:16:07 - Пример использования runtime-очереди в sync.WaitGroup 00:17:09 - Обзор сбалансированного дерева с очередями для примитивов в нодах 00:18:52 - Обзор изменений sync.WaitGroup в Go 1.24 00:20:25 - Примитив синхронизации sync.Once 00:23:31 - Пример неожидаемого поведения наивной реализацией sync.Once 00:25:00 - Go Memory Model спецификация sync.Once 00:26:03 - Обзор внутренней реализации sync.Once 00:28:46 - Функция sync.OnceFunc 00:29:34 - sync.OnceValue и sync.OnceValues 00:29:43 - Наивная реализация sync.Mutex | SpinLock 00:31:43 - Сценарии использования sync.Mutex на практике в Go 00:32:28 - Паттерн withLock на базе sync.Locker 00:34:29 - Пример успешной записи в разные участки памяти в рамках слайса без синхронизации 00:42:18 - Пример с threadlocal переменной 00:44:03 - Паттерн withLock 00:47:05 - Пример нежелательного использования мьютекса со встраиванием в структуру 00:48:27 - Шардированная блокировка, задачи с собеседований 00:54:19 - Пакет maphash для получения хэша для comparable-типов 00:57:15 - Мелкозернистая/тонкая (fine-grained...