Функция Thread get_id () в C ++

Опубликовано: 30 Декабря, 2021

Thread :: get_id () - это встроенная функция в C ++ std :: thread. Это функция-наблюдатель, что означает, что она наблюдает за состоянием и затем возвращает соответствующий результат. Эта функция возвращает значение std :: thread :: id, таким образом идентифицируя поток, связанный с * this.

Синтаксис:

 thread_name.get_id ();

Параметры: эта функция не принимает никаких параметров.

Возвращаемое значение: этот метод возвращает значение типа std :: thread :: id, идентифицирующее поток, связанный с * this, т.е. возвращается поток, который использовался для вызова функции get_id. Созданный по умолчанию std :: thread :: id возвращается, если такой поток не идентифицирован.

Примеры ниже демонстрируют использование метода std :: thread :: get_id ():

Примечание . В сетевой среде IDE эта программа покажет ошибку. Для его компиляции используйте флаг «-pthread» при компиляции компиляторов g ++ с помощью команды « g ++ –std = c ++ 14 -pthread file.cpp ».

// C++ program to demonstrate the use of
// std::thread::get_id
#include <chrono>
#include <iostream>
#include <thread>
using namespace std;
// util function for thread creation
void sleepThread()
{
this_thread::sleep_for(chrono::seconds(1));
}
int main()
{
// creating thread1 and thread2
thread thread1(sleepThread);
thread thread2(sleepThread);
thread ::id t1_id = thread1.get_id();
thread ::id t2_id = thread2.get_id();
cout << "ID associted with thread1= "
<< t1_id << endl;
cout << "ID associted with thread2= "
<< t2_id << endl;
thread1.join();
thread2.join();
return 0;
}

Возможный выход:

ID, связанный с thread1 = 139858743162624
ID, связанный с thread2 = 139858734769920
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++