Энтони Уильямс - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
- Название:Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
- Автор:
- Жанр:
- Издательство:ДМК Пресс
- Год:2012
- Город:Москва
- ISBN:978-5-94074-448-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Энтони Уильямс - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ краткое содержание
Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11. Вы узнаете о том, что такое потоковая модель памяти, и о том, какие средства поддержки многопоточности, в том числе запуска и синхронизации потоков, имеются в стандартной библиотеке. Попутно вы познакомитесь с различными нетривиальными проблемами программирования в условиях параллелизма.
Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
integral-type atomic_fetch_or_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
integral-type atomic_fetch_xor(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_xor(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_xor_explicit(
volatile atomic< integral-type >*,
integral-type , memory_order) noexcept;
integral-type atomic_fetch_xor_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
Те операции, которые предоставляются также основным шаблоном (см. D.3.8), имеют точно такую же семантику.
STD::ATOMIC::FETCH_ADD , ФУНКЦИЯ-ЧЛЕН
Атомарно загружает значение и заменяет его суммой его самого и аргумента i.
Объявление
fetch_add(
integral-type i, memory_order order = memory_order_seq_cst)
volatile noexcept;
integral-type fetch_add(
integral-type i, memory_order order = memory_order_seq_cst)
noexcept;
Результат
Атомарно возвращает прежнее значение *thisи сохраняет в *thisзначение old-value + i.
Возвращаемое значение
Значение *thisнепосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this.
STD::ATOMIC_FETCH_ADD , ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его суммой этого значения и аргумента i.
Объявление
integral- type atomic_fetch_add(
volatile atomic< integral-type >* p, integral-type i) noexcept;
integral-type atomic_fetch_add(
atomic< integral-type >* p, integral-type i) noexcept;
Результат
return p->fetch_add(i);
STD::ATOMIC_FETCH_ADD_EXPLICIT , ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ
КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его суммой этого значения и аргумента i.
Объявление
integral-type atomic_fetch_add_explicit(
volatile atomic< integral-type >* p, integral-type i,
memory_order order) noexcept;
integral-type atomic_fetch_add_explicit(
atomic< integral-type >* p, integral-type i,
memory_order order) noexcept;
Результат
return p->fetch_add(i,order);
STD::ATOMIC::FETCH_SUB , ФУНКЦИЯ-ЧЛЕН
Атомарно читает значение и заменяет его разностью этого значения и аргумента i.
Объявление
integral-type fetch_sub(
integral-type i,
memory_order order = memory_order_seq_cst) volatile noexcept;
integral-type fetch_sub(
integral-type i,
memory_order order = memory_order_seq_cst) noexcept;
Результат
Атомарно возвращает прежнее значение *thisи сохраняет в *thisзначение old-value - i.
Возвращаемое значение
Значение *thisнепосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this.
STD::ATOMIC_FETCH_SUB , ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его разностью этого значения и аргумента i.
Объявление
integral-type atomic_fetch_sub(
volatile atomic< integral-type >* p, integral-type i) noexcept;
integral-type atomic_fetch_sub(
atomic< integral-type >* p, integral-type i) noexcept;
Результат
return p->fetch_sub(i);
STD::ATOMIC_FETCH_SUB_EXPLICIT , ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его разностью этого значения и аргумента i.
Объявление
integral-type atomic_fetch_sub_explicit(
volatile atomic< integral-type >* p,
integral-type i, memory_order order) noexcept;
integral-type atomic_fetch_sub_explicit(
atomic< integral-type >* p,
integral-type i, memory_order order) noexcept;
Результат
return p->fetch_sub(i, order);
STD::ATOMIC::FETCH_AND , ФУНКЦИЯ-ЧЛЕН
Атомарно загружает значение и заменяет его результатом операции поразрядное-и между этим значением и аргументом i.
Объявление
integral-type fetch_and(
integral-type i, memory_order order = memory_order_seq_cst)
volatile noexcept;
integral-type fetch_and(
integral-type i, memory_order order = memory_order_seq_cst)
noexcept;
Результат
Атомарно возвращает прежнее значение *thisи сохраняет в *thisзначение old-value & i.
Возвращаемое значение
Значение *thisнепосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this.
STD::ATOMIC_FETCH_AND , ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его результатом операции поразрядное-и между этим значением и аргументом i. Объявление
integral-type atomic_fetch_and(
volatile atomic< integral-type >* p, integral-type i) noexcept;
integral-type atomic_fetch_and(
atomic< integral-type >* p, integral-type i) noexcept;
Результат
return p->fetch_and(i);
STD::ATOMIC_FETCH_AND_EXPLICIT , ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его результатом операции поразрядное-и между этим значением и аргументом i.
Объявление
integral-type atomic_fetch_and_explicit(
volatile atomic< integral-type >* p,
integral-type i, memory_order order) noexcept;
integral-type atomic_fetch_and_explicit(
atomic< integral-type >* p,
integral-type i, memory_order order) noexcept;
Результат
return p->fetch_and(i,order);
STD::ATOMIC::FETCH_OR , ФУНКЦИЯ-ЧЛЕН
Атомарно загружает значение и заменяет его результатом операции поразрядное-или между этим значением и аргументом i.
Объявление
integral-type fetch_or(
integral-type i, memory_order order = memory_order_seq_cst)
volatile noexcept;
integral-type fetch_or(
integral-type i, memory_order order = memory_order_seq_cst)
noexcept;
Результат
Атомарно возвращает прежнее значение *thisи сохраняет в *thisзначение old-value | i.
Возвращаемое значение
Значение *thisнепосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this.
STD::ATOMIC_FETCH_OR , ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >и заменяет его результатом операции поразрядное-или между этим значением и аргументом i.
Интервал:
Закладка: