◐ Shell
clean mode source ↗

std::thread — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <thread>

class thread;

(начиная с C++11)

Класс thread представляет один поток выполнения. Потоки позволяют одновременно выполнять несколько функций.

Потоки начинают выполнение немедленно после создания связанного объекта потока (ожидая любые задержки планирования ОС), начиная с функции верхнего уровня, предоставленной в виде аргумента конструктора. Возвращаемое значение функции верхнего уровня игнорируется, и если она завершается, выбрасывая исключение, вызывается std::terminate. Функция верхнего уровня может передавать своё возвращаемое значение или исключение вызывающей стороне через std::promise или путём изменения общих переменных (которые могут потребовать синхронизации, смотрите std::mutex и std::atomic).

Объекты std::thread также могут быть в состоянии, которое не представляет поток (после создания по умолчанию, перемещение из, detach или join), а также поток выполнения не может быть связан с любыми объектами thread (после detach).

Нет двух объектов std::thread, которые могут представлять один и тот же поток выполнения; std::thread не CopyConstructible или CopyAssignable, хотя он MoveConstructible и MoveAssignable.

Типы-элементы

Тип элемент Определение
native_handle_type (не всегда присутствует) определяется реализацией[править]

Классы-элементы

предоставляет идентификатор потока
(public элемент класса) [править]

Функции-элементы

создаёт новый объект thread
(public функция-элемент) [править]
разрушает объект потока, основной поток должен быть присоединён или отсоединён
(public функция-элемент) [править]
перемещает объект потока
(public функция-элемент) [править]
Наблюдатели
проверяет, является ли поток присоединяемым, т.е. потенциально работающим в параллельном контексте
(public функция-элемент) [править]
возвращает идентификатор потока
(public функция-элемент) [править]
возвращает базовый дескриптор потока, определяемый реализацией
(public функция-элемент) [править]
возвращает количество параллельных потоков, поддерживаемых реализацией
(public static функция-элемент) [править]
Операции
ждёт, пока поток закончит свое выполнение
(public функция-элемент) [править]
позволяет потоку выполняться независимо от дескриптора потока
(public функция-элемент) [править]
обменивает два объекта thread
(public функция-элемент) [править]

Функции, не являющиеся элементами

Смотрите также

std::thread с поддержкой автоматического присоединения и завершения
(класс) [править]