C#: Разговоры о многопоточности без воды

7 участников

О чём курс

Этот практический курс по многопоточности и параллельному программированию в 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 системы, разрабатывать системы бронирования с конкурентным доступом, строить многопоточные математические вычисления и правильно обрабатывать исключения в параллельном коде. Знание материала курса позволит вам не только успешно проходить технические интервью, но и применять полученные навыки для решения повседневных задач, обеспечивая стабильность и высокую скорость работы ваших приложений. Это инвестиция в ваш профессиональный рост, которая поможет вам уверенно чувствовать себя в многопоточной среде и эффективно управлять жизненным циклом потоков и ресурсов в проектах любой сложности.

Программа обучения

  1. Начало: Добро пожаловать на курс! Давайте знакомиться!
  2. Основы многопоточности: Пример с выводом информации о главном и вторичном потоках. Пример параллельного запуска рабочих потоков. Создание потоков с разными приоритетами, фоновым флагом и именам. Замер производительности способов подсчёта суммы массива. Самостоятельная работа: сложение матриц. Самостоятельная работа: веб-сервис.
  3. Синхронизация потоков: Введение в гонку потоков и критическая секция. Самостоятельная работа: система брони билетов. Введение в Monitor. Самостоятельная работа: билеты на мониторе. Проблемы межпроцессного взаимодействия и Mutex. ReaderWriterLockSlim.
  4. Продвинутая синхронизация: Проблема ресурсов: Semaphore и SemaphoreSlim. Сигнальные объекты. Состояние потоков и взаимная блокировка.
  5. Управление жизненным циклом потоков: Возврат результата из вторичного потока. Остановка вторичного потока. Пул потоков. Самостоятельная работа: обновление сервера. ThreadPool.RegisterWaitForSingleObject. Обработка ошибок в многопоточном приложении.
  6. Task и асинхронное программирование: Асинхронность и Task: первые шаги. Самостоятельная работа: переезд на Task. Продолжение выполнения с ContinueWith. Самостоятельная работа: ContinueWith. Unwrap. Обработка исключений в Task. Самостоятельная работа: переезд Thread → Task. Отмена Task через CancellationTokenSource.
  7. Async/Await паттерн: Волшебные async/await. Синтаксис async/await и контекст потока. Ошибки await Task.WhenAll.
  8. Параллельное программирование: Упоминание о Parallel. Parallel LINQ. Потокобезопасные коллекции. Техническое задание: потокобезопасная очередь. BlockingCollection. Техническое задание: использование BlockingCollection.
  9. Окончание
Складчина создана 11 апреля 2026 г. · описание обновлено 23 апреля 2026 г.

Теги курса

Профессии
Инструменты

Другие материалы автора 6

СК Сергей Камянецкий Все материалы
1 163 ₽ 6 500 ₽