this->joinable()
возвращает true
.
Результат
Отсоединяет поток выполнения, ассоциированный с *this
.
Постусловия
this->get_id() == id()
, this->joinable() == false
. Поток выполнения, который был ассоциирован с *this
до вызова этой функции, отсоединен и более не ассоциирован ни с каким объектом std::thread
.
Исключения
std::system_error
, если требуемого эффекта добиться не удалось или если this->joinable()
возвращает false
в момент вызова.
STD::THREAD::GET_ID
, ФУНКЦИЯ-ЧЛЕН
Возвращает значение типа s td::thread::id
, идентифицирующее поток выполнения, ассоциированный с *this
.
Объявление
thread::id get_id() const noexcept;
Возвращаемое значение
Если с *this
ассоциирован поток выполнения, то возвращает экземпляр std::thread::id
, который идентифицирует этот поток. В противном случае возвращает сконструированный по умолчанию экземпляр std::thread::id
.
Исключения
Нет.
STD::THREAD::HARDWARE_CONCURRENCY
, СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН
Возвращает информацию о том, сколько потоков могут одновременно работать на имеющемся оборудовании.
Объявление
unsigned hardware_concurrency() noexcept;
Возвращаемое значение
Количество потоков, которые могут одновременно исполняться на имеющемся оборудовании. Например, это может быть число процессоров. Если информация недоступна или определена неточно, возвращает 0.
Исключения
Нет.
D.7.2. Пространство имен this_thread
Функции из пространства имен std::this_thread
применяются к вызывающему потоку.
STD::THIS_THREAD::GET_ID
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Возвращает значение типа std::thread::id
, идентифицирующее текущий поток выполнения.
Объявление
thread::id get_id() noexcept;
Возвращаемое значение
Экземпляр std::thread::id
, идентифицирующий текущий поток выполнения.
Исключения
Нет.
STD::THIS_THREAD::YIELD
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Информирует библиотеку о том, что поток, вызвавший эту функцию, в данный момент не хочет выполняться. Обычно используется в коротких циклах, чтобы не потреблять излишне много процессорного времени.
Объявление
void yield() noexcept;
Результат
Предоставляет библиотеке возможность запланировать другой поток вместо текущего.
Исключения
Нет.
STD::THIS_THREAD::SLEEP_FOR
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Приостанавливает выполнение текущего потока на указанное время.
Объявление
template
void sleep_for(
std::chrono::duration const& relative_time);
Результат
Приостанавливает выполнение текущего потока на указанное время relative_time
.
Примечание. Поток может быть блокирован дольше, чем указано. Если возможно, истекшее время измеряется по стабильным часам.
Исключения
Нет.
STD::THIS_THREAD::SLEEP_UNTIL
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Приостанавливает выполнение текущего потока до указанного момента времени.
Объявление
template
void sleep_until(
std::chrono::time_point const& absolute_time);
Результат
Приостанавливает выполнение текущего потока до наступления момента absolute_time
по указанным часам Clock
.
Примечание. Не дается никаких гарантий относительно того, сколько времени будет блокирован вызывающий поток. Гарантируется лишь, что значение, возвращенное Clock::now()
, больше или равно absolute_time
в точке, где поток разблокировался.
Исключения
Нет.
Cargill, Tom, "Exception Handling: A False Sense of Security," in С++ Report 6, no. 9, (November-December 1994). Доступно также по адресу http://www.informit.com/content/images/020163371x/supplements/Exception_Handling_Article.html.
Hoare, C.A.R., Communicating Sequential Processes (Prentice Hall International, 1985), ISBN 0131532898. Доступно также по адресу http://www.usingcsp.com/cspbook.pdf. [22] Имеется русский перевод. Ч. Хоар «Взаимодействующие последовательные процессы», Мир, 1989. Прим. перев .
Michael, Maged M., "Safe Memory Reclamation for Dynamic Lock-Free Objects Using Atomic Reads and Writes" in PODС '02: Proceedings of the Twenty-first Annual Symposium on Principles of Distributed Computing (2002), ISBN 1-58113-485-1.
–––. U.S. Patent and Trademark Office application 20040107227, "Method for efficient implementation of dynamic lock-free data structures with safe memory reclamation."
Sutter, Herb, Exceptional С++: 47 Engineering Puzzles, Programming Problems, and Solutions (Addison Wesley Professional, 1999), ISBN 0-201-61562-2. [23] Имеется русский перевод. Герб Саттер «Решение сложных задач на C++», Вильямс, 2008. Прим. перев .
Читать дальше