КулЛиб - Классная библиотека! Скачать книги бесплатно 

Параллельное программирование на С++ в действии. Практика разработки многопоточных программ [Энтони Уильямс] (fb2)

Книга заблокирована по требованию правообладателя или ФЗ-114/ФЗ-149/ФЗ-398.

Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
Энтони Уильямс
Параллельное программирование на С++ в действии. Практика разработки многопоточных программ (fb2)
Жанры: C, C++, C#   Литература ХXI века (эпоха Глобализации экономики)   Параллельное и распределенное программирование   Современные российские издания  

Добавлена: 01.07.2018
Версия: 1.009
ISBN: 978-5-94074-448-1
Кодировка файла: UTF-8
Издательство: ДМК Пресс

Город: Москва
Аннотация:

В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. Стандарт С++11 языка С++ предоставляет развитую поддержку многопоточности в приложениях. Поэтому, чтобы сохранять конкурентоспособность, вы должны овладеть принципами и приемами их разработки, а также новыми средствами языка, относящимися к параллелизму.
Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11. Вы узнаете о том, что такое потоковая модель памяти, и о том, какие средства поддержки многопоточности, в том числе запуска и синхронизации потоков, имеются в стандартной библиотеке. Попутно вы познакомитесь с различными нетривиальными проблемами программирования в условиях параллелизма.

В этой главе:
■ Что понимается под параллелизмом и многопоточностью.
■ Зачем использовать параллелизм и многопоточность в своих приложениях.
■ Замечания об истории поддержки параллелизма в С++.
■ Структура простой многопоточной программы на С++.

В этой главе:
■ Запуск потоков и различные способы задания кода, исполняемого в новом потоке.
■ Ждать завершения потока или позволить ему работать независимо?
■ Уникальные идентификаторы потоков.

В этой главе:
■ Проблемы разделения данных между потоками.
■ Защита данных с помощью мьютексов.
■ Альтернативные средства защиты разделяемых данных.

В этой главе:
■ Ожидание события.
■ Ожидание однократного события с будущими результатами
■ Ожидание с ограничением по времени.
■ Использование синхронизации операций для упрощения программы.

В этой главе:
■ Детальные сведения о модели памяти С++.
■ Атомарные типы в стандартной библиотеке С++.
■ Операции над атомарными типами.
■ Как можно использовать эти операции для синхронизации потоков.

В этой главе:
■ Что понимается под проектированием структур данных, рассчитанных на параллельный доступ?
■ Рекомендации по проектированию таких структур.
■ Примеры реализации параллельных структур данных.

В этой главе:
■ Реализация параллельных структур данных без использования блокировок.
■ Техника управления памятью в структурах данных без блокировок.
■ Простые рекомендации по написанию структур данных без блокировок.

В этой главе:
■ Методы распределения данных между потоками.
■ Факторы, влияющие на производительность параллельного кода.
■ Как от этих факторов зависит дизайн параллельных структур данных.
■ Безопасность многопоточного кода относительно исключений.
■ Масштабируемость.
■ Примеры реализации параллельных алгоритмов.

В этой главе:
■ Пулы потоков.
■ Учет зависимостей между задачами, адресованными пулу.
■ Занимание работ у потоков из пула.
■ Прерывание потоков.

В этой главе:
■ Ошибки, связанные с параллелизмом.
■ Поиск ошибок путем тестирования и анализа кода коллегами.
■ Разработка тестов для многопоточных приложений.
■ Тестирование производительности многопоточных приложений.


  [Оглавление]
Скачать fb2Читать