Энтони Уильямс - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
- Название:Параллельное программирование на С++ в действии. Практика разработки многопоточных программ
- Автор:
- Жанр:
- Издательство:ДМК Пресс
- Год:2012
- Город:Москва
- ISBN:978-5-94074-448-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Энтони Уильямс - Параллельное программирование на С++ в действии. Практика разработки многопоточных программ краткое содержание
Книга «Параллельное программирование на С++ в действии» не предполагает предварительных знаний в этой области. Вдумчиво читая ее, вы научитесь писать надежные и элегантные многопоточные программы на С++11. Вы узнаете о том, что такое потоковая модель памяти, и о том, какие средства поддержки многопоточности, в том числе запуска и синхронизации потоков, имеются в стандартной библиотеке. Попутно вы познакомитесь с различными нетривиальными проблемами программирования в условиях параллелизма.
Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
template
constexpr duration(const duration& d);
constexpr rep count() const;
constexpr duration operator+() const;
constexpr duration operator-() const;
duration& operator++();
duration operator++(int);
duration& operator--();
duration operator--(int);
duration& operator+=(const duration& d);
duration& operator-=(const duration& d);
duration& operator*=(const rep& rhs);
duration& operator/=(const rep& rhs);
duration& operator%=(const rep& rhs);
duration& operator%=(const duration& rhs);
static constexpr duration zero();
static constexpr duration min();
static constexpr duration max();
};
template
constexpr bool operator==(
const duration& lhs,
const duration& rhs);
template
constexpr bool operator !=(
const duration& lhs,
const duration& rhs);
template
constexpr bool operator<(
const duration& lhs,
const duration& rhs);
template
constexpr bool operator<=(
const duration& lhs,
const duration& rhs);
template
constexpr bool operator>(
const duration& lhs,
const duration& rhs);
template
constexpr bool operator>=(
const duration& lhs,
const duration& rhs);
template
constexpr ToDuration duration_cast(
const duration& d);
Требования
Repдолжен быть встроенным числовым типом или определенным пользователем типом со свойствами числа. Periodдолжен быть конкретизацией шаблона std::ratio<>.
STD::CHRONO::DURATION::REP, TYPEDEF
Это псевдоним типа для хранения числа тиков в значении duration.
Объявление
typedef Rep rep;
rep— тип значения, используемого для хранения внутреннего представления объекта duration.
STD::CHRONO::DURATION::PERIOD, TYPEDEF
Это псевдоним типа для конкретизации шаблона класса std::ratio, которая задает количество долей секунды, представляемых счетчиком интервала. Например, если period— это std::ratio<1, 50>, то объект duration, для которого count()равно N , представляет N пятидесятых долей секунды.
Объявление
typedef Period period;
STD::CHRONO::DURATION , КОНСТРУКТОР ПО УМОЛЧАНИЮ
Конструирует экземпляр std::chrono::durationсо значением по умолчанию.
Объявление
constexpr duration() = default;
Результат
Внутреннее значение duration(типа rep) инициализируется значением по умолчанию.
STD::CHRONO::DURATION , КОНВЕРТИРУЮЩИЙ КОНСТРУКТОР ИЗ ЗНАЧЕНИЯ СЧЕТЧИКА
Конструирует экземпляр std::chrono::durationс заданным значением счетчика.
Объявление
template
constexpr explicit duration(const Rep2& r);
Результат
Внутреннее значение объекта durationинициализируется значением static_cast(r).
Требования
Этот конструктор участвует в разрешении перегрузки, только если Rep2может быть неявно преобразован в Rep, и либо Rep— тип с плавающей точкой, либо Rep2 не является типом с плавающей точкой.
Постусловие
this->count() == static_cast(r)
STD::CHRONO::DURATION , КОНВЕРТИРУЮЩИЙ КОНСТРУКТОР ИЗ ДРУГОГО ЗНАЧЕНИЯ STD::CHRONO::DURATION
Конструирует экземпляр std::chrono::duration, масштабируя значение счетчика другого объекта std::chrono::duration.
Объявление
template
constexpr duration(const duration& d);
Результат
Внутреннее значение объекта durationинициализируется значением duration_cast>(d).count().
Требования
Этот конструктор участвует в разрешении перегрузки, только если Rep— тип с плавающей точкой, либо Rep2 не является типом с плавающей точкой, и Period2— целое кратное Period(то есть ratio_divide::den == 1). Это позволяет избежать случайного обрезания (и, значит, потери точности) при сохранении интервала с меньшим периодом в переменной, представляющий интервал с большим периодом.
Постусловие
this->count() == duration_cast>(d).count()
Примеры
duration< int, ratio<1, 1000>> ms(5); ← 5 миллисекунд
duration<1,1>> s(ms);←┐ Ошибка: нельзя
│ сохранить мс как
│ целые секунды
duration<1, 1>> s2(ms);←┐ Правильно:
│ s2.count() == 0.005
duration<1, 1000000>> us(ms);←┐ Правильно:
│ us.count() == 5000
STD::CHRONO::DURATION::COUNT , ФУНКЦИЯ-ЧЛЕН
Получает значение интервала.
Объявление
constexpr rep count() const;
Возвращаемое значение
Внутреннее значение объекта durationв виде значения типа rep.
STD::CHRONO::DURATION::OPERATOR+ , УНАРНЫЙ ОПЕРАТОР ПЛЮС
Пустая операция, возвращает копию *this.
Объявление
constexpr duration operator+() const;
Возвращаемое значение
*this
STD::CHRONO::DURATION::OPERATOR- , УНАРНЫЙ ОПЕРАТОР МИНУС
Возвращает интервал, в котором значение count()противоположно значению this->count().
Объявление
constexpr duration operator-() const;
Возвращаемое значение
duration(-this->count());
STD::CHRONO::DURATION::OPERATOR++ , ОПЕРАТОР ПРЕДИНКРЕМЕНТА
Инкрементирует внутренний счетчик.
Объявление
duration& operator++();
Результат
++this->internal_count;
Возвращаемое значение
*this
STD::CHRONO::DURATION::OPERATOR++ , ОПЕРАТОР ПОСТИНКРЕМЕНТА
Инкрементирует внутренний счетчик и возвращает то значение *this, которое предшествовало выполнению операции.
Объявление
duration operator++(int);
Результат
duration temp(*this);
++(*this);
return temp;
STD::CHRONO::DURATION::OPERATOR-- , ОПЕРАТОР ПРЕДЕКРЕМЕНТА
Декрементирует внутренний счетчик.
Объявление
duration& operator--();
Результат
--this->internal_count;
Возвращаемое значение
*this
STD::CHRONO::DURATION::OPERATOR-- , ОПЕРАТОР ПОСТДЕКРЕМЕНТА
Декрементирует внутренний счетчик и возвращает то значение *this, которое предшествовало выполнению операции.
Объявление
duration operator--(int);
Результат
duration temp(*this);
--(*this);
return temp;
STD::CHRONO::DURATION::OPERATOR+= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Прибавляет счетчик другого объекта durationк внутреннему счетчику *this.
Объявление
duration& operator+=(duration const& other);
Результат
internal_count += other.count();
Возвращаемое значение
*this
STD::CHRONO::DURATION::OPERATOR-= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Вычитает счетчик другого объекта durationиз внутреннего счетчика *this.
Объявление
duration& operator-=(duration const& other);
Результат
internal_count-=other.count();
Интервал:
Закладка: