• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2026/2027

Software Engineering 1: многопоточное программирование

ID 1145492

Когда читается: 3-й курс, 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 4
Контактные часы: 56

Программа дисциплины

Аннотация

“Многопоточное программирование” - дисциплина, изучающая принципы и техники создания многопоточных программ. Параллельное программирование позволяет разработчикам использовать многоядерные компьютеры для ускорения работы приложений за счет одновременного использования нескольких процессоров. Этот курс обучает слушателей фундаментальным концепциям параллельного программирования в контексте Java 8 и покажет, как эффективно использовать многопоточность для оптимизации производительности и ускорения работы программ.
Цель освоения дисциплины

Цель освоения дисциплины

  • Освоить базовые механизмы многопоточности и принципы обеспечения корректности параллельного исполнения
  • Осознанно выбирать инструменты синхронизации
  • Управлять пулами, асинхронностью и масштабированием
  • Обосновывать корректность и диагностировать проблемы
Планируемые результаты обучения

Планируемые результаты обучения

  • обосновывает корректность многопоточного кода через happens‑before
  • проверяет код и анализирует диагностику с работающего сервиса
  • организует параллельные задачи и эффективно распределяет нагрузку
  • пишет масштабируемый I/O‑код на виртуальных потоках и строит асинхронные цепочки без блокировок
  • подбирает подходящие механизмы синхронизации и избегает избыточных блокировок
  • диагностирует и устраняет взаимоблокировки и гонки данных
  • запускает потоки и аргументирует необходимость многопоточности в задаче
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в курс и в предмет. Лекция
  • Введение в курс и в предмет. Семинар
  • Разделяемое состояние и гонки. Лекция
  • Разделяемое состояние и гонки. Семинар
  • Взаимное исключение. Лекция
  • Взаимное исключение. Семинар
  • Взаимоблокировки. Лекция
  • Взаимоблокировки. Семинар
  • Стратегии потокобезопасности. Лекция
  • Стратегии потокобезопасности. Семинар
  • Замки и синхронизаторы. Лекция
  • Замки и синхронизаторы. Семинар
  • Атомарные операции. Лекция
  • Атомарные операции. Семинар
  • Конкурентные коллекции. Лекция
  • Конкурентные коллекции. Семинар
  • Пулы потоков. Лекция
  • Пулы потоков. Семинар
  • Асинхронная композиция. Лекция
  • Асинхронная композиция. Семинар
  • Виртуальные потоки. Лекция
  • Виртуальные потоки. Семинар
  • Структурная конкурентность. Лекция
  • Структурная конкурентность. Семинар
  • Тестирование и отладка. Лекция
  • Тестирование и отладка. Семинар
  • Модель памяти. Лекция
  • Модель памяти. Семинар
Элементы контроля

Элементы контроля

  • неблокирующий Работа на занятиях
  • неблокирующий Домашние задания
  • неблокирующий Экзамен
    Устный по билетам: два теоретических вопроса и разбор незнакомого фрагмента кода. Разбор кода — главный источник разброса оценок: его нельзя подготовить заранее, и сразу видно, понимает студент механику или запомнил рецепты.
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    ДЗ*05+РЗ*02+Э*03, где ДЗ - это домашние задания, РЗ - работа на занятиях и Э - экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • C++. Практика многопоточного программирования - 978-5-4461-0831-2 - Энтони Уильямс - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/products/371682 - 371682 - iBOOKS
  • Java Concurrency на практикею. - 978-5-4461-1314-9 - Гетц Брайан, Пайерлс Тим, Блох Джошуа, Боубер Джозеф, Холмс Дэвид, Ли Даг - 2021 - Санкт-Петербург: Питер - https://ibooks.ru/products/371693 - 371693 - iBOOKS

Рекомендуемая дополнительная литература

  • Herlihy, M., & Shavit, N. (2012). The Art of Multiprocessor Programming, Revised Reprint. Burlington: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=460894

Авторы

  • Солдатова Татьяна Владимировна
  • Шовкович Елена Геннадьевна