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


Книга Сигизмунда Миронина «Почему Сталин защищал Лысенко» исследует сложные отношения между советским диктатором и печально известным псевдоученым Трофимом Лысенко. Автор проливает свет на это парадоксальное партнерство, которое оказало пагубное влияние на советскую науку и общество. Миронин подробно рассматривает биографии Сталина и Лысенко, а также исторический контекст, в котором они встретились. Он утверждает, что Сталин изначально был привлечен к лженаучным идеям Лысенко, поскольку они...

СЛУЧАЙНАЯ КНИГА

Логово. Дин Рэй Кунц
- Логово

Жанр: Ужасы

Год издания: 1995

Серия: Мировой бестселлер [Новости]

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

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

Жанр:

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

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

неизвестно

Издательство:

ДМК Пресс

Год издания:

ISBN:

978-5-94074-448-1

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Параллельное программирование на С++ в действии. Практика разработки многопоточных программ"

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

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

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

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

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

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

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

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

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

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

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

Читаем онлайн "Параллельное программирование на С++ в действии. Практика разработки многопоточных программ" (ознакомительный отрывок). [Страница - 2]

Хиннанта (Howard Hinnant), Бена Хатчингса (Ben Hutchings), Йана Кристоферсона (Jan Kristofferson), Дуга Ли (Doug Lea), Пола Маккинни (Paul МсKenney), Ника Макларена (Nick McLaren), Кларка Нельсона (Clark Nelson), Билла Пью (Bill Pugh), Рауля Силвера (Raul Silvera), Герба Саттера (Herb Sutter), Детлефа Вольмана (Detlef Vollmann) и Майкла Вонга (Michael Wong), а также всех тех, кто рецензировал материалы, принимал участие в их обсуждении на заседаниях комитета и иными способами содействовал оформлению поддержки многопоточности и параллелизма в С++11.

Наконец, хочу выразить благодарность людям, чьи предложения позволили заметно улучшить книгу: д-ру Джейми Оллсопу (Jamie Allsop), Петеру Димову, Ховарду Хиннанту, Рику Моллою (Rick Molloy), Джонатану Уэйкли (Jonathan Wakely) и д-ру Расселу Уиндеру (Russel Winder). Отдельное спасибо Расселу за подробные рецензии и Джонатану, который в качестве технического редактора, тщательно проверил окончательный текст на предмет наличия вопиющих ошибок. (Все оставшиеся ошибки — целиком моя вина.) И напоследок выражаю признательность группе рецензентов: Райану Стивенсу (Ryan Stephens), Нилу Хорлоку (Neil Horlock), Джону Тейлору младшему (John Taylor Jr.), Эзре Дживану (Ezra Jivan), Джошуа Хейеру (Joshua Heyer), Киту С. Киму (Keith S. Kim), Мишель Галли (Michele Galli) Майку Тянь-Чжань Чжану (Mike Tian-Jian Jiang), Дэвиду Стронгу (David Strong), Роджеру Орру (Roger Orr), Вагнеру Рику (Wagner Rick), Майку Буксасу (Mike Buksas) и Бас Воде (Bas Vodde). Также спасибо всем читателям предварительного издания, которые нашли время указать на ошибки и отметить места, нуждающиеся в уточнении.

Об этой книге

Эта книга представляет собой углубленное руководство по средствам поддержки многопоточности и параллелизма в новом стандарте С++, от базового использования классов и функций из пространств имел std::thread, std::mutex и std::async до сложных вопросов, связанных с атомарными операциями и моделью памяти.

Структура книги
В первых четырех главах описываются различные библиотечные средства и порядок работы с ними.

Глава 5 посвящена низкоуровневым техническим деталям модели памяти и атомарных операций. В частности, рассматривается вопрос об использовании атомарных операций для задания ограничений на порядок выполнения других частей программы. Вводные главы на этом заканчиваются.

В главах 6 и 7 начинается изучение программирования на более высоком уровне, с примерами использования базовых средств для построения сложных структур данных — с блокировками (глава 6) и без блокировок (глава 7).

В главе 8 эта линия продолжается: даются рекомендации по проектированию многопоточных программ, рассматриваются аспекты, влияющие на производительность, и приводятся примеры реализации различных параллельных алгоритмов.

Глава 9 посвящена средствам управления потоками, рассматриваются пулы потоков, очереди работ и прерывание операций.

Тема главы 10 — тестирование и отладка: типы ошибок, методы их отыскания, способы тестирования и так далее.

В приложениях вы найдете краткое описание некоторых языковых средств, добавленных в новый стандарт и имеющих отношение к многопоточности; детали реализации библиотеки передачи сообщениями, упомянутой в главе 4, и полный справочник по библиотеке С++11 Thread Library.

На кого рассчитана эта книга
Если вы пишете многопоточный код на С++, то эта книга для вас. Если вы пользуетесь средствами многопоточности из стандартной библиотеки С++, то здесь вы найдете руководство по основным вопросам. Если вы работаете с другими библиотеками многопоточности, то описанные рекомендации и приемы все равно могут оказаться полезным подспорьем.

Предполагается владение языком С++ на рабочем уровне, по предварительное знакомство с новыми языковыми средствами необязательно — они описаны в приложении А. Также не требуются знания или опыт работы в области многопоточного программирования, хотя их наличие было бы плюсом.

Как пользоваться этой книгой
Если раньше вы не писали многопоточных программ, то я рекомендую читать книгу последовательно от начала до конца, опустив, быть может, кое-какие детали из главы 5. Глава 7 опирается на материал главы 5, поэтому если вы пропустите главу 5, то отложите также чтение седьмой главы.

Если вам не доводилось использовать новые языковые средства, вошедшие в стандарт С++11, то имеет смысл с самого начала бегло просмотреть приложение А, чтобы понимать приведенные в тексте примеры. Впрочем, в основном тексте упоминания о новых --">

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


Ваш e-mail является приватным и не будет опубликован в комментарии.

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