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

Энтони Уильямс

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<typename Callable, typename Args...>

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 во внутреннюю память.

Синхронизация

Вызов этого конструктора происходит-раньше выполнения переданной функции во вновь созданном потоке выполнения.

STD::THREAD , ПЕРЕМЕЩАЮЩИЙ КОНСТРУКТОР

Передает владение потоком выполнения от существующего объекта std::thread вновь созданному.