c++ 获取当前代码的线程好
时间: 2024-09-26 11:09:03 浏览: 19
在 C++ 中,获取当前执行代码的线程信息通常使用 `std::this_thread` 或者 `<thread>` 模块中的相关函数。以下是一些常用的手段:
1. 使用 `std::this_thread::get_id()` 函数,它可以返回一个 `std::thread::id` 类型的标识符,这个标识符代表了当前线程。
```cpp
#include <iostream>
#include <thread>
int main() {
std::thread::id currentThreadId = std::this_thread::get_id();
std::cout << "Current thread ID: " << currentThreadId << '\n';
return 0;
}
```
这段代码会输出当前线程的ID。
2. 如果你使用 C++11 及以上版本,还可以用 `std::active_thread_ids()` 函数获取当前活动线程集合,返回的是 `std::set<std::thread::id>` 类型。
```cpp
#include <iostream>
#include <thread>
#include <set>
void printThreadIds() {
std::set<std::thread::id> activeThreads = std::active_thread_ids();
for (const auto& id : activeThreads) {
std::cout << "Active thread ID: " << id << '\n';
}
}
int main() {
std::thread t(printThreadIds);
t.join(); // Wait for the thread to finish
return 0;
}
```
这将打印所有活动线程的ID,包括主线程和创建的子线程。