Українська
Тема 9. Багатопотокове програмування мовою C++ та паралельні алгоритми стандартної бібліотеки
Мета: ознайомитися із засобами багатопотокового програмування стандартної бібліотеки C++ та паралельними алгоритмами з політиками виконання; навчитися створювати й збирати проєкти за допомогою CMake, пресетів і Ninja, запускати потоки std::jthread із кооперативною зупинкою, синхронізувати їх м’ютексами, умовними змінними, семафорами та атомарними змінними, отримувати результати через std::future; опанувати вимірювання прискорення й пошук гонитв даних за допомогою ThreadSanitizer.
Зміст лекції
- GCC, CMake, Ninja і CLion — Інструменти: GCC, CMake, Ninja і CLion · Збирання проєкту: CMake і Ninja
- Потоки та синхронізація в C++ — Потоки std::thread і std::jthread · М’ютекси та блокування · Умовні змінні, семафори, latch і barrier
- Атомарні операції та асинхронні результати — Атомарні операції · Асинхронні результати: async, future, promise · Пул потоків
- Паралельні алгоритми та діагностика — Паралельні алгоритми стандартної бібліотеки · Пошук помилок: ThreadSanitizer і налагоджувач · Вимірювання продуктивності
- Приклади та типові помилки — Приклади програм · Типові помилки