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

Здесь есть возможность читать онлайн «Энтони Уильямс - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2012, ISBN: 2012, Издательство: ДМК Пресс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Параллельное программирование на С++ в действии. Практика разработки многопоточных программ»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

Параллельное программирование на С++ в действии. Практика разработки многопоточных программ — читать онлайн бесплатно полную книгу (весь текст) целиком

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

STD::ATOMIC::OPERATOR&= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ

Атомарно заменяет значение, хранящееся в *this, результатом операции поразрядное-и между этим значением и значением аргумента и возвращает новое значение.

Объявление

integral-type operator&=( integral-type i) volatile noexcept;

integral-type operator&=( integral-type i) noexcept;

Результат

return this->fetch_and(i) & i;

STD::ATOMIC::OPERATOR|= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ

Атомарно заменяет значение, хранящееся в *this, результатом операции поразрядное-или между этим значением и значением аргумента и возвращает новое значение.

Объявление

integral-type operator|=( integral-type i) volatile noexcept;

integral-type operator|=( integral-type i) noexcept;

Результат

return this->fetch_or(i, std::memory_order_seq_cst) | i;

STD::ATOMIC::OPERATOR^= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ

Атомарно заменяет значение, хранящееся в *this, результатом операции поразрядное исключающее-или между этим значением и значением аргумента и возвращает новое значение.

Объявление

integral-type operator^=(integral-type i) volatile noexcept;

integral-type operator^=(integral-type i) noexcept;

Результат

return this->fetch_xor(i, std::memory_order_seq_cst) ^ i;

STD::ATOMIC , ЧАСТИЧНАЯ СПЕЦИАЛИЗАЦИЯ

Частичная специализация std::atomicшаблона std::atomicпредоставляет атомарный тип для любого указательного типа, с полным набором операций.

Экземпляры std::atomicне удовлетворяют требованиям концепций CopyConstructibleи CopyAssignable, поскольку такие операции невозможно выполнить атомарно.

Определение класса

template

struct atomic {

atomic() noexcept = default;

constexpr atomic(T*) noexcept;

bool operator=(T*) volatile;

bool operator=(T*);

atomic(const atomic&) = delete;

atomic& operator=(const atomic&) = delete;

atomic& operator=(const atomic&) volatile = delete;

bool is_lock_free() const volatile noexcept;

bool is_lock_free() const noexcept;

void store(T*, memory_order = memory_order_seq_cst)

volatile noexcept;

void store(T*, memory_order = memory_order_seq_cst) noexcept;

T* load(memory_order = memory_order_seq_cst)

const volatile noexcept;

T* load(memory_order = memory_order_seq_cst) const noexcept;

T* exchange(T*, memory_order = memory_order_seq_cst)

volatile noexcept;

T* exchange(T*, memory_order = memory_order_seq_cst) noexcept;

bool compare_exchange_strong(

T* & old_value, T* new_value,

memory_order order = memory_order_seq_cst)

volatile noexcept;

bool compare_exchange_strong(

T* & old_value, T* new_value,

memory_order order = memory_order_seq_cst) noexcept;

bool compare_exchange_strong(

T* & old_value, T* new_value,

memory_order success_order, memory_order failure_order)

volatile noexcept;

bool compare_exchange_strong(

T* & old_value, T* new_value,

memory_order success_order,

memory_order failure_order) noexcept;

bool compare_exchange_weak(

T* & old_value, T* new_value,

memory_order order = memory_order_seq_cst) volatile noexcept;

bool compare_exchange_weak(

T* & old_value, T* new_value,

memory_order order = memory_order_seq_cst) noexcept;

bool compare_exchange_weak(

T* & old_value, T* new_value,

memory_order success_order, memory_order failure_order)

volatile noexcept;

bool compare_exchange_weak(

T* & old_value, T* new_value,

memory_order success_order,

memory_order failure_order) noexcept;

operator T*() const volatile noexcept;

operator T*() const noexcept;

T* fetch_add(

ptrdiff_t, memory_order = memory_order_seq_cst)

volatile noexcept;

T* fetch_add(

ptrdiff_t, memory_order = memory_order_seq_cst) noexcept;

T* fetch_sub(

ptrdiff_t, memory_order = memory_order_seq_cst)

volatile noexcept;

T* fetch_sub(

ptrdiff_t, memory_order = memory_order_seq_cst) noexcept;

T* operator++() volatile noexcept;

T* operator++() noexcept;

T* operator++(int) volatile noexcept;

T* operator++(int) noexcept;

T* operator--() volatile noexcept;

T* operator--() noexcept;

T* operator--(int) volatile noexcept;

T* operator--(int) noexcept;

T* operator+=(ptrdiff_t) volatile noexcept;

T* operator+=(ptrdiff_t) noexcept;

T* operator-=(ptrdiff_t) volatile noexcept;

T* operator-=(ptrdiff_t) noexcept;

};

bool atomic_is_lock_free(volatile const atomic*) noexcept;

bool atomic_is_lock_free(const atomic*) noexcept;

void atomic_init(volatile atomic*, T*) noexcept;

void atomic_init(atomic*, T*) noexcept;

T* atomic_exchange(volatile atomic*, T*) noexcept;

T* atomic_exchange(atomic*, T*) noexcept;

T* atomic_exchange_explicit(

volatile atomic*, T*, memory_order) noexcept;

T* atomic_exchange_explicit(

atomic*, T*, memory_order) noexcept;

void atomic_store(volatile atomic*, T*) noexcept;

void atomic_store(atomic*, T*) noexcept;

void atomic_store_explicit(

volatile atomic*, T*, memory_order) noexcept;

void atomic_store_explicit(

atomic*, T*, memory_order) noexcept;

T* atomic_load(volatile const atomic*) noexcept;

T* atomic_load(const atomic*) noexcept;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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


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

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

x