1. 说明
- 这是一个命名空间,不是类
- 主要是线程类和异常类中需要用到这个命名空间,异常类需要stackTrace()看函数栈信息,线程类需要其他的一些功能
- 不明白为什么特意分个命名空间,不懂为啥不把这些需要的直接写到线程类中
2. 变量说明
- 以下所有变量都是__thread修饰的,这样的变量是线程局部存储的,也就是说每个线程都有个独立的变量
- t_cachedTid
- 线程真实pid缓存
- 如果每次都调用getpid()获得pid,效率较低
- t_tidString
- 这是tid的字符串表示形式
- t_tidStringLength
- 如名,长度
- t_threadName
- 如名,名字
3. 函数说明
1. 内联
- tid()
- 如过是第一次调用,调用cacheTid(),再调用detail::gettid(),再调用系统的SYS_gettid,获得线程tid赋值给t_cacheTid,也就是获得当前线程id并缓存
- 返回t_cacheTid的值
- tidString()
- 返回t_tidString
- tidStringLength()
- 返回t_tidStringLength
- name()
- 返回t_threadName
2. 普通
- cacheTid()
- 在Thread.cc中实现,主要是调用了gettid,给t_cacheTid和t_tidString,t_tidStringLength赋值
- isMainThread()
- 判断是否是主线程
- sleepUsec(int64_t)
- 睡眠
- stackTrace(bool)
- 异常类中使用,主要是返回函数栈信息