Функция Thread get_id () в C ++
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