Подробнее
Что нужно для старта
- Уверенное знание языка 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 системы
- Управлять жизненным циклом потоков и ресурсов
Для кого этот курс
- Курс предназначен для C# разработчиков уровня junior/middle, которые готовятся к техническим собеседованиям на позиции middle/senior developer и хотят уверенно отвечать на вопросы по многопоточности.
- Если вы когда-либо получали вопросы про Race Conditions, Deadlock'и, примитивы синхронизации или PLINQ на интервью и чувствовали себя неуверенно - этот курс для вас.
Программа курса
- 🚀 Добро пожаловать на курс!
- 👋 Давайте знакомиться!
- Пример с выводом информации о главном и вторичном потоках
- Пример параллельного запуска рабочих потоков
- Создание потоков с разными приоритетами, фоновым флагом и именам
- Замер производительности способов подсчёта суммы массива
- Самостоятельная работа: сложение матриц
- Самостоятельная работа: веб-сервис
- Введение в гонку потоков и критическая секция
- Самостоятельная работа: система брони билетов
- Введение в Monitor
- Самостоятельная работа: билеты на мониторе
- Проблемы межпроцессного взаимодействия и Mutex
- ReaderWriterLockSlim
- Проблема ресурсов: Semaphore и SemaphoreSlim
- Сигнальные объекты
- Состояние потоков и взаимная блокировка
- Возврат результата из вторичного потока
- Остановка вторичного потока
- Пул потоков
- Самостоятельная работа: обновление сервера
- ThreadPool.RegisterWaitForSingleObject
- Обработка ошибок в многопоточном приложении
- Асинхронность и Task: первые шаги
- Самостоятельная работа: переезд на Task
- Продолжение выполнения с ContinueWith
- Самостоятельная работа: ContinueWith
- Unwrap
- Обработка исключений в Task
- Самостоятельная работа: переезд Thread → Task
- Отмена Task через CancellationTokenSource
- Волшебные async/await
- Синтаксис async/await и контекст потока
- Ошибки await Task.WhenAll
- Упоминание о Parallel
- Parallel LINQ
- Потокобезопасные коллекции
- Техническое задание: потокобезопасная очередь
- BlockingCollection
- Техническое задание: использование BlockingCollection
- Бонус оффер
- Что дальше?
01Начало
- 🚀 Добро пожаловать на курс!
- 👋 Давайте знакомиться!
02Основы многопоточности
- Пример с выводом информации о главном и вторичном потоках
- Пример параллельного запуска рабочих потоков
- Создание потоков с разными приоритетами, фоновым флагом и именам
- Замер производительности способов подсчёта суммы массива
- Самостоятельная работа: сложение матриц
- Самостоятельная работа: веб-сервис
03Синхронизация потоков
- Введение в гонку потоков и критическая секция
- Самостоятельная работа: система брони билетов
- Введение в Monitor
- Самостоятельная работа: билеты на мониторе
- Проблемы межпроцессного взаимодействия и Mutex
- ReaderWriterLockSlim
04Продвинутая синхронизация
- Проблема ресурсов: Semaphore и SemaphoreSlim
- Сигнальные объекты
- Состояние потоков и взаимная блокировка
05Управление жизненным циклом потоков
- Возврат результата из вторичного потока
- Остановка вторичного потока
- Пул потоков
- Самостоятельная работа: обновление сервера
- ThreadPool.RegisterWaitForSingleObject
- Обработка ошибок в многопоточном приложении
06Task и асинхронное программирование
- Асинхронность и Task: первые шаги
- Самостоятельная работа: переезд на Task
- Продолжение выполнения с ContinueWith
- Самостоятельная работа: ContinueWith
- Unwrap
- Обработка исключений в Task
- Самостоятельная работа: переезд Thread → Task
- Отмена Task через CancellationTokenSource
07Async/Await паттерн
- Волшебные async/await
- Синтаксис async/await и контекст потока
- Ошибки await Task.WhenAll
08Параллельное программирование
- Упоминание о Parallel
- Parallel LINQ
- Потокобезопасные коллекции
- Техническое задание: потокобезопасная очередь
- BlockingCollection
- Техническое задание: использование BlockingCollection
09Окончание
- Бонус оффер
- Что дальше?
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «C#: Разговоры о многопоточности без воды» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 7 сентября 2026 г.

Stepik 















