📜  C++中的线程get_id()函数(1)

📅  最后修改于: 2023-12-03 15:14:03.813000             🧑  作者: Mango

C++中的线程get_id()函数

C++11引入了线程库,其中提供了一些实用的函数来管理线程。其中一个函数是get_id(),它可以用于获取当前线程的ID。

语法

get_id()函数的语法很简单:

std::thread::id get_id() const noexcept;

它返回一个std::thread::id类型的值,表示当前线程的ID。

用法

get_id()函数非常实用,可以用于跟踪和调试线程。例如,可以使用它来打印消息,显示正在执行的线程的ID:

std::cout << "Thread " << std::this_thread::get_id() << " is running" << std::endl;

还可以将线程ID传递给其他线程,以便它们可以共享状态或数据:

std::thread thread1(workerFunc, std::this_thread::get_id(), ...);
示例

下面是一个简单的示例,演示如何使用get_id()函数来获取线程ID:

#include <iostream>
#include <thread>

void workerFunc()
{
    std::cout << "Thread " << std::this_thread::get_id() << " is running" << std::endl;
}

int main()
{
    std::thread thread1(workerFunc);
    std::cout << "Main Thread " << std::this_thread::get_id() << " is running" << std::endl;
    thread1.join();

    return 0;
}

在这个例子中,我们创建了一个新线程,并在其中调用workerFunc()函数。在workerFunc()函数中,我们使用get_id()函数打印正在运行的线程的ID。在主线程中,我们也打印了当前运行的线程的ID。当程序运行时,它将输出以下内容:

Main Thread 139701025752640 is running
Thread 139701017359872 is running

请注意,每次运行时输出的线程ID可能会有所不同。

结论

get_id()函数是C++11线程库中一个非常有用的函数,可以用于跟踪和调试线程。它可以在很多情况下使用,包括消息打印,共享数据和状态等。