C#: Разговоры о многопоточности без воды [Stepik] [Сергей Камянецкий]

Bot

Администратор
Команда форума
23 Янв 2020
206,758
3,143
113
269049.jpg

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. Окончание