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

Шрифт
Интервал

стр.

, меньше любого другого экземпляра >std::thread::id, представляющего поток выполнения. Если два экземпляра >std::thread::id равны, то ни один из них не меньше другого. Любое множество различных значений >std::thread::id полностью упорядочено, и этот порядок остается непротиворечивым на всем протяжении работы программы. Порядок может изменяться при разных прогонах одной и той же программы.

>STD::THREAD::ID, ОПЕРАТОР СРАВНЕНИЯ МЕНЬШЕ ИЛИ РАВНО

Сравнивает два экземпляра >std::thread::id, проверяя, предшествует ли один из них другому в смысле отношения полного порядка, существующего на множестве значений идентификаторов потоков, или оба экземпляра совпадают.

Объявление

>bool operator<=(

> std::thread::id lhs, std::thread::id rhs) noexcept;

Возвращаемое значение

>!(rhs < lhs)

Исключения

Нет.

>STD::THREAD::ID, ОПЕРАТОР СРАВНЕНИЯ БОЛЬШЕ

Сравнивает два экземпляра >std::thread::id, проверяя, следует ли один из них за другим в смысле отношения полного порядка, существующего на множестве значений идентификаторов потоков.

Объявление

>bool operator>(

> std::thread::id lhs, std::thread::id rhs) noexcept;

Возвращаемое значение

>rhs < lhs

Исключения

Нет.

>STD::THREAD::ID, ОПЕРАТОР СРАВНЕНИЯ БОЛЬШЕ ИЛИ РАВНО

Сравнивает два экземпляра >std::thread::id, проверяя, следует ли один из них за другим в смысле отношения полного порядка, существующего на множестве значений идентификаторов потоков, или оба экземпляра совпадают.

Объявление

>bool operator>=(

> std::thread::id lhs, std::thread::id rhs) noexcept;

Возвращаемое значение

>!(lhs < rhs)

Исключения

Нет.

>STD::THREAD::ID, ОПЕРАТОР ВСТАВКИ В ПОТОК

Выводит строковое представление значения >std::thread::id в указанный поток.

Объявление

>template

>basic_ostream&

>operator<<(basic_ostream&& out, thread::id id);

Результат

Выводит строковое представление значения >std::thread::id в указанный поток. Возвращаемое значение

>out

Исключения

Нет.

Примечание. Формат строкового представления не специфицирован. Равные экземпляры имеют одинаковое представление, неравные — различное.

>STD::THREAD::NATIVE_HANDLE_TYPE, ПСЕВДОНИМ ТИПА

>native_handle_type — это псевдоним типа, который можно использовать в сочетании с платформенно-зависимыми API.

Объявление

>typedef implementation-defined native_handle_type;

Примечание. Этот псевдоним типа необязателен. Если он определен, то реализация должна предоставить тип, пригодный для использования в сочетании с платформенно-зависимыми API.

>STD::THREAD::NATIVE_HANDLE, ФУНКЦИЯ-ЧЛЕН

Возвращает значение типа >native_handle_type, представляющее поток выполнения, ассоциированный с >*this.

Объявление

>native_handle_type native_handle();

Примечание. Эта функция необязательна. Если она имеется, то возвращаемое значение должно быть пригодно для использования в сочетании с платформенно-зависимыми API.

>STD::THREAD, КОНСТРУКТОР ПО УМОЛЧАНИЮ

Конструирует объект >std::thread, с которым не ассоциирован никакой поток выполнения.

Объявление

>thread() noexcept;

Результат

Конструирует экземпляр >std::thread, с которым не ассоциирован никакой поток выполнения.

Постусловия

Для вновь сконструированного объекта x типа >std::thread x.get_id()==id().

Исключения

Нет.

>STD::THREAD, КОНСТРУКТОР

Конструирует экземпляр >std::thread, ассоциированный с новым потоком выполнения.

Объявление

>template

>explicit thread(Callable&& func, Args&&... args);

Предусловия

>func и каждый элемент списка >args должен удовлетворять требованиям концепции >MoveConstructible.

Результат

Конструирует экземпляр >std::thread и ассоциирует с ним вновь созданный потоком выполнения. Копирует или перемещает аргумент >func и все элементы списка >args во внутреннюю память, где они хранятся на протяжении всего времени жизни потока выполнения. Вызывает >INVOKE(copy-of-func, copy-of-args) в новом потоке выполнения.

Постусловия

Для вновь сконструированного объекта >x типа >std::thread x.get_id() != id().

Исключения

Исключение типа >std::system_error, если не удалось запустить новый поток. Любое исключение, возбужденное при копировании >func или >args во внутреннюю память.


стр.

Похожие книги