Литвек - электронная библиотека >> Энтони Уильямс >> Параллельное и распределенное программирование и др. >> Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

Книга - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ. Энтони Уильямс - прочитать в Литвек



Издано в серии:

Издательство: ДМК Пресс

Город печати: Москва

ISBN: 978-5-94074-448-1

Книга закончена

Книга изъята из публичного доступа!

   просмотрело человек за:

день: 4  месяц: 24   год: 81   всего: 655

 Скачать фрагмент
Читать онлайн

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

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

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

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

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

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

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

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

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

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

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


Ким, Хью и Ирен.
  : 0 : 0 : 0 : 0 : 0 : 0 : 0  

Оставить комментарий: