C++11 std::thread::id

本文探讨了C++11中std::thread::id的实际实现细节,发现其并非简单的整数类型,而是一个包含私有数据成员的内部类。文中详细解释了如何获取线程ID,并提供了使用pthread.h中pthread_self()函数来解决获取原始线程ID需求的方法。

C++11 std::thread::id其实是一个内部类:

class thread{
...
    class id{
        ...
    };
...
};
id里面有一个私有的类似typedef unsigned long int pthread_t;的数据成员。当初遇到id的时候以为它就是一个类似int的东西。在程序的某个地方需要一个数值的id,需要std::this_thread::get_id()获得而不是std::thread::get_id()获得。结果std::thread::id这货是个类,并且数值id是私有的,虽然有std::thread::native_handle(),但用不上。差点就想在标准库里加个std::this_thread::get_raw_id()之类的函数。最后用pthread.h的pthread_self()解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值