Практический курс по многопоточности и параллельному программированию в C#/.NET. От Thread и lock до PLINQ и потокобезопасных коллекций. Реальные примеры и паттерны для высокопроизводительных приложений. Для кого этот курс: Курс предназначен для C# разработчиков уровня junior/middle, которые готовятся к техническим собеседованиям на позиции middle/senior developer и хотят уверенно отвечать на вопросы по многопоточности. Если вы когда-либо получали вопросы про Race Conditions, Deadlock'и, примитивы синхронизации или PLINQ на интервью и чувствовали себя неуверенно - этот курс для вас. Начальные требования: Уверенное знание языка C#. Чему вы научитесь: Создавать и управлять потоками с помощью Thread. Применять синхронизацию через lock и Monitor для защиты общих ресурсов. Использовать CancellationToken для корректной отмены долгих операций. Обрабатывать исключения в многопоточной среде. Различать назначение ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBag. Сравнивать производительность обычных и concurrent коллекций. Применять BlockingCollection для Producer-Consumer архитектур. Анализировать компромиссы между безопасностью и скоростью. Использовать Task и Task<T> для неблокирующих операций. Применять основы async/await для упрощения асинхронного кода. Комбинировать синхронный и асинхронный код. Разрабатывать системы бронирования с конкурентным доступом. Строить многопоточные математические вычисления (сложение матриц). Создавать Producer-Consumer системы для обработки данных. Диагностировать и устранять Race Conditions и Deadlock'и. Предотвращать гонки данных (Race Conditions). Правильно обрабатывать AggregateException в параллельном коде. Корректно завершать Producer-Consumer системы. Управлять жизненным циклом потоков и ресурсов. Как проходит обучение: Курс состоит из небольших видеоуроков (всего их 86) с детальным текстовым сопровождением - каждая тема включает примеры кода и пошаговые объяснения принципов работы многопоточности. После изучения материала вы проходите тесты на понимание концепций и выполняете практические задания - пишете код. Программа: Начало Основы многопоточности Синхронизация потоков Продвинутая синхронизация Управление жизненным циклом потоков Task и асинхронное программирование Async/Await паттерн Параллельное программирование Окончание