[Balun.Courses] Concurrency в Go. Тариф Стандарт (Владимир Балун)

Курс

[Balun.Courses] Concurrency в Go. Тариф Стандарт (Владимир Балун)

2 550 ₽

О курсе

Ты закроешь 95% вопросов по concurrency: Получишь глубокие знания и изучишь «подкапотную» Concurrency в GO для работы в крупных проекта Научишься писать параллельный код и разбираться в нем Изучишь множество паттернов использования параллельного программирования Попрактикуешься на реальных задачах, которые уже встречались или встретятся в рабочих проектах Разработаешь свою In-memory key-value базу данных c WAL-ом, снэпшотами и асинхронной репликацией Научишься решать задачи по Concurrency, которые встречаются на собеседованиях по Go Разработаешь свою In-memory key-value базу данных с асинхронной репликацией, которая станет сильным портфолио при трудоустройстве, мощной практикой для реальных проектов и убедительным подтверждением навыков для повышения ответственности и уровня ЗП на работе Ты получишь целый список учебников, статей, курсов и видео, которые позволят тебе изучать Concurrency после курса еще дальше и глубже Программа курса: 1. Основы исполнения программного кода Pipeline процессора Устройство процессора и шина Кэши процессора, когерентность кэша (MESI), false sharing, store bufer, invalidation queue Виртуальная память (MMU, TLB, swapping) Алгоритмы планирования (FCFS, SJN, RR) Процессы и потоки Context switching Hyper-threading Сопрограммы Результат: понимаешь, как выполняется код в рамках архитектуры компьютера и операционной системы 2. Горутины и планировщик GO Внутреннее устройство горутины Внутреннее устройство планировщика Go Work sharing и work stealing Результат: разбираешься во внутреннем устройстве горутин и планировщика GO, а также начинаешь понимать Concurrency модель в Go 3. Примитивы синхронизации: часть 1 Примитивы синхронизации (sync.WaitGroup, sync. Mutex, sync. Once) Проблемы конкурентного программирования (deadlock, livelock, data race, starvation) Внутреннее устройство mutex Go race detector Результат: понимаешь, как синхронизировать конкурентный код при помощи примитивов синхронизации, а также знакомишься с основными проблемами конкурентного программирования 4. Примитивы синхронизации: часть 2 Примитивы синхронизации (sync.RWMutex, sync. Map, sync. Cond, sync. Pool, sync. atomic) Реализация (spinlock, recursive mutex, timed mutex, rw mutex, once) Cache contention Результат: знакомишься с дополнительными примитивами синхронизации и знаешь, как писать свои, в случае необходимости 5. Каналы и их внутреннее устройство Буферизованные и небуферизованные каналы Однонаправленные каналы Внутреннее устройство каналов Share memory by communicating Producer and consumer Gracefull Shutdown Результат: разбираешься во внутреннем устройстве каналов и понимаешь, зачем они нужны в Go 6. Паттерны использование каналов Promise and Future Fan-In and Fan-Out Generator Error group Pipeline Cancelation Or channel Bridge Результат: понимаешь, где и как использовать каналы в GO 7. Контексты и модели памяти Контексты (TODO, Background, WithCancel, WithCancelCause, WithDeadline, WithTimeout, WithValue) Внутреннее устройство контекстов Gracefull shutdown Модели памяти (sequential, acquire/release, releaxed) Memory reordering Барьеры памяти Результат: знаешь контексты и понимаешь, как правильно их использовать в GO, а также дополнительно знакомишься с моделью памяти в Go 8. Алгоритмы синхронизации и lock-free структуры данных Шардированная map Алгоритмы синхронизации (грубая, тонкая) Lock-free структуры данных (stack, queue) Линеаризуемость ABA проблема Результат: знаешь нетривиальные алгоритмы синхронизации структур данных, а также понимаешь, как писать конкурентный код без блокировок 9. Практическое использование конкурентных вычислений Реализация worker pool (fixed и dynamic) Реализация cache synchronization Реализация scheduler Реализация batcher Результат: ты самостоятельно прорешал(-а) реальные задачи, с которыми сталкивались современные IT-компании, и полностью готов(-а) применять все знания на практике в настоящих проектах ты готов(-а) к решению задач на собеседовании по GO
balun.coursesconcurrencypipeline процессораалгоритмы планированиявладимир балун