std:: thread
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<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
(
опционально*
)
|
определяется реализацией |
Классы-члены
|
представляет
id
потока
(public member class) |
Функции-члены
создает новый объект
thread
(публичная функция-член) |
|
|
уничтожает объект потока, базовый поток должен быть присоединен или отсоединен
(публичная функция-член) |
|
|
перемещает объект потока
(публичная функция-член) |
|
Наблюдатели |
|
|
проверяет, является ли поток присоединяемым, т.е. потенциально выполняющимся в параллельном контексте
(публичная функция-член) |
|
|
возвращает
идентификатор
потока
(публичная функция-член) |
|
|
возвращает базовый дескриптор потока, определяемый реализацией
(публичная функция-член) |
|
|
[static]
|
возвращает количество параллельных потоков, поддерживаемых реализацией
(публичная статическая функция-член) |
Операции |
|
|
ожидает завершения выполнения потока
(публичная функция-член) |
|
|
позволяет потоку выполняться независимо от дескриптора потока
(публичная функция-член) |
|
|
обменивает два объекта потока
(публичная функция-член) |
|
Функции, не являющиеся членами класса
|
(C++11)
|
специализирует алгоритм
std::swap
(функция) |
Смотрите также
|
(C++20)
|
std::thread
с поддержкой автоматического присоединения и отмены
(класс) |