C#: Разговоры о многопоточности без воды
О чём курс
Этот практический курс по многопоточности и параллельному программированию в C#/.NET представляет собой комплексную программу, разработанную специально для разработчиков, стремящихся к созданию высокопроизводительных и отказоустойчивых приложений. В современной разработке на платформе .NET глубокое понимание многопоточности является критически важным навыком, который отличает профессионала уровня middle или senior. Данный курс охватывает полный спектр инструментов: от фундаментальных понятий, таких как Thread и lock, до продвинутых механизмов, включая PLINQ и специализированные потокобезопасные коллекции. Обучение построено по принципу пошагового погружения: вы начнете с простых концепций и постепенно перейдете к сложным паттернам проектирования, что позволит сформировать глубокое понимание принципов работы многопоточной среды.
Курс идеально подходит для C# разработчиков уровня junior и middle, которые готовятся к техническим собеседованиям и хотят уверенно отвечать на сложные вопросы о Race Conditions, Deadlock'ах, примитивах синхронизации и особенностях асинхронного программирования. Одной из ключевых особенностей программы является акцент на практическом применении знаний: каждая тема подкреплена реальными примерами кода, разбором типичных ошибок и методами их предотвращения. Вы научитесь эффективно использовать Monitor и CancellationToken, освоите тонкости работы с Parallel.For, разберете стратегии PLINQ, такие как WithMergeOptions и ForAll, а также изучите все типы concurrent коллекций, включая ConcurrentDictionary, ConcurrentQueue, ConcurrentStack и ConcurrentBag. Вы поймете, как анализировать компромиссы между безопасностью и производительностью, что крайне важно при проектировании высоконагруженных систем.
Формат обучения включает 86 небольших видеоуроков, дополненных детальным текстовым сопровождением, примерами кода и пошаговыми объяснениями. После изучения теоретического материала вы закрепляете знания с помощью тестов и практических заданий, где пишете реальный код. Вы научитесь создавать Producer-Consumer системы, разрабатывать системы бронирования с конкурентным доступом, строить многопоточные математические вычисления и правильно обрабатывать исключения в параллельном коде. Знание материала курса позволит вам не только успешно проходить технические интервью, но и применять полученные навыки для решения повседневных задач, обеспечивая стабильность и высокую скорость работы ваших приложений. Это инвестиция в ваш профессиональный рост, которая поможет вам уверенно чувствовать себя в многопоточной среде и эффективно управлять жизненным циклом потоков и ресурсов в проектах любой сложности.
Программа обучения
- Начало: Добро пожаловать на курс! Давайте знакомиться!
- Основы многопоточности: Пример с выводом информации о главном и вторичном потоках. Пример параллельного запуска рабочих потоков. Создание потоков с разными приоритетами, фоновым флагом и именам. Замер производительности способов подсчёта суммы массива. Самостоятельная работа: сложение матриц. Самостоятельная работа: веб-сервис.
- Синхронизация потоков: Введение в гонку потоков и критическая секция. Самостоятельная работа: система брони билетов. Введение в Monitor. Самостоятельная работа: билеты на мониторе. Проблемы межпроцессного взаимодействия и Mutex. ReaderWriterLockSlim.
- Продвинутая синхронизация: Проблема ресурсов: Semaphore и SemaphoreSlim. Сигнальные объекты. Состояние потоков и взаимная блокировка.
- Управление жизненным циклом потоков: Возврат результата из вторичного потока. Остановка вторичного потока. Пул потоков. Самостоятельная работа: обновление сервера. ThreadPool.RegisterWaitForSingleObject. Обработка ошибок в многопоточном приложении.
- Task и асинхронное программирование: Асинхронность и Task: первые шаги. Самостоятельная работа: переезд на Task. Продолжение выполнения с ContinueWith. Самостоятельная работа: ContinueWith. Unwrap. Обработка исключений в Task. Самостоятельная работа: переезд Thread → Task. Отмена Task через CancellationTokenSource.
- Async/Await паттерн: Волшебные async/await. Синтаксис async/await и контекст потока. Ошибки await Task.WhenAll.
- Параллельное программирование: Упоминание о Parallel. Parallel LINQ. Потокобезопасные коллекции. Техническое задание: потокобезопасная очередь. BlockingCollection. Техническое задание: использование BlockingCollection.
- Окончание
Теги курса
Другие материалы автора 6
СК Сергей Камянецкий Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.