Параллельное программирование на C++ в действии, практика разработки многопоточных программ, Уильямс Э., 2012.
В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. Стандарт C++11 языка C++ предоставляет развитую поддержку многопоточности в приложениях. Поэтому, чтобы сохранять конкурентоспособность, вы должны овладеть принципами и приемами их разработки, а также новыми средствами языка, относящимися к параллелизму
Книга «Параллельное программирование на C++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11. Вы узнаете о том, что такое потоковая модель памяти, и о том, какие средства поддержки многопоточности, в том числе запуска и синхронизации потоков, имеются в стандартной библиотеке. Попутно вы познакомитесь с различными нетривиальными проблемами программирования в условиях
Что такое параллелизм?
Если упростить до предела, то параллелизм - это одновременное выполнение двух или более операций. В жизни он встречается на каждом шагу: мы можем одновременно идти и разговаривать или одной рукой делать одно, а второй - другое. Ну и, разумеется, каждый из нас живет своей жизнью независимо от других - вы смотрите футбол, я в это время плаваю и т. д.
Параллелизм в вычислительных системах
Говоря о параллелизме в контексте компьютеров, мы имеем в виду, что одна и та же система выполняет несколько независимых операций параллельно, а не последовательно. Идея не нова: многозадачные операционные системы, позволяющие одновременно запускать на одном компьютере несколько приложений с помощью переключения между задачами уже много лет как стали привычными, а дорогие серверы с несколькими процессорами, обеспечивающие истинный параллелизм, появились еще раньше. Новым же является широкое распространение компьютеров, которые не просто создают иллюзию
одновременного выполнения задач, а действительно исполняют их параллельно.
Исторически компьютеры, как правило, оснащались одним процессором с одним блоком обработки, или ядром, и это остается справедливым для многих настольных машин и по сей день. Такая машина в действительности способна исполнять только одну задачу в каждый момент времени, но может переключаться между задачами много раз в секунду. Таким образом, сначала одна задача немножко поработает, потом другая, а в итоге складывается впечатление, будто все происходит одновременно. Это называется переключением задач.
ОГЛАВЛЕНИЕ.
Предисловие.
Благодарности.
Об этой книге.
Об иллюстрации на обложке.
ГЛАВА 1. Здравствуй, параллельный мир!
ГЛАВА 2. Управление потоками.
ГЛАВА 3. Разделение данных между потоками
ГЛАВА 4. Синхронизация параллельных операций.
ГЛАВА 5. Модель памяти C++ и атомарные операции.
ГЛАВА 6. Проектирование параллельных структур данных с блокировками.
ГЛАВА 7. Проектирование параллельных структур данных без блокировок.
ГЛАВА 8. Проектирование параллельных программ.
ГЛАВА 9. Продвинутое управление потоками.
ГЛАВА 10. Тестирование и отладка многопоточных приложений.
Приложения.
РЕСУРСЫ.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ.
Купить .
Теги: программирование :: C++ :: программы :: Уильямс :: 2012
Смотрите также учебники, книги и учебные материалы:
- Психосоматика, Когда болеет тело, а причины в душе, Как самостоятельно помочь телу, понимая его язык, Величко М.
- Портал в мир ребенка, Психологические сказки для детей и родителей, Хухлаев О.Е., Хухлаева О.В., 2020
- Стратегия и психология современных шахмат, Гулько Б.Ф., 2019
- Азбука для двоих, Шейко Н.И., 2005
- Управление настроением, методы и упражнения, Гринбергер Д., Падески К., 2008
- Большая книга женского влияния, За спиной успешного мужчины всегда стоит женщина, Чернозем А., 2016
- Управление выбором, искусство стрижки народных масс, Никонов А., 2011
- Сила обаяния, Как завоевывать сердца и добиваться успеха, Трейси Б., Арден Р., 2009