РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
766 of 815 menu

Метод get_id

Метод get_id класса thread возвращает идентификатор потока в виде объекта типа std::thread::id. Этот идентификатор уникален для каждого активного потока выполнения и может использоваться для сравнения потоков, хранения в контейнерах или вывода в поток. Если объект thread не связан ни с каким потоком выполнения, метод возвращает сконструированный по умолчанию объект id, который не равен идентификатору ни одного активного потока. Метод не принимает параметров и не изменяет состояние объекта.

Синтаксис

thread::id get_id() const noexcept;

Пример

Давайте создадим поток и выведем его идентификатор, а также идентификатор главного потока:

#include <iostream> #include <thread> using namespace std; int main() { thread t([]{ cout << "thread id: " << t.get_id() << endl; }); cout << "main id: " << this_thread::get_id() << endl; t.join(); return 0; }

Результат выполнения кода:

"main id: 140234567890" "thread id: 140234555678"

Пример

Давайте проверим, что идентификаторы двух разных потоков не равны, а идентификатор одного и того же потока совпадает:

#include <iostream> #include <thread> using namespace std; int main() { thread t1([]{}); thread t2([]{}); cout << boolalpha; cout << (t1.get_id() == t1.get_id()) << endl; cout << (t1.get_id() == t2.get_id()) << endl; t1.join(); t2.join(); return 0; }

Результат выполнения кода:

true false

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

  • класс thread,
    который представляет поток выполнения
  • метод join,
    который ожидает завершения потока
  • метод detach,
    который отсоединяет поток от объекта
  • метод joinable,
    который проверяет, связан ли объект с потоком
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить