You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何识别线程?步骤说明及C++示例解析

如何在C++中识别特定线程

嘿,这事儿其实很简单,核心就两步:

  • 先获取并保存你要识别的目标线程的ID
  • 在线程执行的函数内部,再拿到当前线程的ID,和之前存的ID做对比就行

下面是完整的代码示例(出自Josuttis所著《The C++ Standard Library》第二版):

#include <iostream>
#include <thread>

// 全局变量用来存储我们要识别的master线程的ID
std::thread::id master_tid;

void doSomething() {
    // 获取当前线程的ID,和master_tid对比
    if (std::this_thread::get_id() == master_tid) {
        std::cout << "这是我们要识别的master线程哦!" << std::endl;
    } else {
        std::cout << "这是slave线程~" << std::endl;
    }
}

int main() {
    // 创建master线程
    std::thread master(doSomething);
    // 保存master线程的ID
    master_tid = master.get_id();
    
    // 创建另一个slave线程
    std::thread slave(doSomething);
    
    // 等待两个线程执行完毕
    master.join();
    slave.join();
    
    return 0;
}

简单解释下逻辑:

  • 我们用全局的std::thread::id类型变量master_tid来存目标线程的ID,这样线程函数也能直接访问到
  • 在main函数里启动master线程后,立刻用get_id()拿到它的唯一标识并保存起来
  • 线程函数doSomething里,std::this_thread::get_id()能获取到当前运行这个函数的线程ID,和master_tid一对比,就能判断是不是我们要找的目标线程了

内容的提问来源于stack exchange,提问作者SSteven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:16:27