Язык С++ выбирают, когда надо создать по-настоящему молниеносные приложения. А качественная конкурентная обработка сделает их еще быстрее. Новые возможности С++17 позволяют использовать всю мощь многопоточного программирования, чтобы с легкостью решать задачи графической обработки, машинного обучения и др.
Энтони Уильямс, эксперт конкурентной обработки, рассматривает примеры и описывает практические задачи, а также делится секретами, которые пригодятся всем, в том числе и самым опытным разработчикам. Теперь вам доступны все аспекты конкурентной обработки на C++17 — от создания новых потоков до проектирования полнофункциональных многопоточных алгоритмов и структур данных.
В книге
• Полный обзор возможностей С++17. • Запуск и управление потоками. • Синхронизация конкурентных операций. • Разработка конкурентного кода. • Отладка многопоточных приложений.
Книга подойдет для разработчиков среднего уровня, пользующихся C и C++. Опыт конкурентного программирования не требуется.
Энтони Уильямс с 2001 года входит в состав экспертного совета BSI C++ и является автором библиотеки just::thread Pro для С++11.
«Эта понятная, емкая, ценная книга должна быть на столе у каждого программиста C++». Роб Грин, Университет Боулинг-Грин
«Подробное описание всех возможностей конкурентности в C ++». Маурицио Томаси, Миланский университет
«Крайне рекомендуется программистам, желающим расширить свои знания о новейшем стандарте C++». Фредерик Флайоль, 4Pro Web C++
«В этом руководстве вы найдете примеры для повседневного использования в ваших проектах; книга поможет вам прокачаться в C++ от Падавана до Джедая». Юра Шикин, IVI Technologies
три года. Пока вышли две такие публикации: C++14 в 2014 году и C++17 — в 2017-м, а также несколько технических спецификаций с описаниями расширений стандарта C++. Из самых значимых новшеств в стандарте C++11 стоит отметить поддержку многопоточных программ. Впервые Комитет признал существование многопоточных приложений на этом языке и добавил в библиотеку средства для написания многопоточных приложений. Появилась возможность писать на C++ многопоточные программы с гарантированным поведением, не полагаясь на платформенные
ий можно избежать, присвоив функциональному объекту имя, как было показано ранее, с помощью дополнительных скобок или нового унифицированного синтаксиса инициализации, например:
std::thread my_thread((background_task()));
std::thread my_thread{background_task()};
В первом примере дополнительные скобки не позволяют интерпретировать код как объявление функции, разреша