CurrentThread

作用:

CurrentThread并不是一个类,而是一个命名空间,在mymuduo内部,目的是提供对于当前线程的管理操作。

内部变量:

__thread int t_cachedTid;    //当前线程ID
__thread char t_tidString[];//当前线程ID ,char*类型
__thread int t_tidStringLength;//char*大小
__thread const char* t_threadName;//当前线程名字

  __thread 修饰变量每一个线程有一份独立实体,各个线程的值互不干扰。也就是说,每个线程都独立的拥有这四个变量。

内部函数:

//返回线程ID
inline int tid()
{
//__builtin_expect(EXP, N)。意思是:EXP==N的概率很大。
if(__builtin_expect(t_cachedTid==,))
cacheTid();
return t_cachedTid;
} //返回线程ID,char*类型
inline const char* tidString()
{
return t_tidString;
} //返回char*类型线程ID的大小
inline int tidStringLength()
{
return t_tidStringLength;
}
//返回线程的名字
inline const char* name()
{
return t_threadName;
} bool isMainThread(); void sleepUsec(int64_t usec); //返回线程调用栈信息,
string stackTrace(bool demangle);

stackTrace获取的信息如下

/*
打印信息是这么个玩意儿。stackTrace内部实现没有去深究。
/home/zqc/c_c++Repo/Qtcode/build-mymuduo-Desktop_Qt_5_14_2_GCC_64bit-Debug/mymuduo() [0x401dd6]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f8c8c6d5840]
/home/zqc/c_c++Repo/Qtcode/build-mymuduo-Desktop_Qt_5_14_2_GCC_64bit-Debug/mymuduo() [0x4012e9]
*/

测试:

了解一下__thread声明变量的用法,每个线程都独立拥有一个该变量。

最新文章

  1. 项目vue2.0仿外卖APP(四)
  2. 【krpano】加密XML手动解密分析
  3. C#开源
  4. PHP 弹出文件下载
  5. Emacs 之列编辑模式
  6. php返回json,xml,JSONP等格式的数据
  7. 从高版本JDK换成低版本JDK报错Unsupported major.minor version 52.0
  8. javascript学习-原生javascript的小特效(原生javascript实现链式运动)
  9. windows store app search contract
  10. supervisor进程管理
  11. php install extension
  12. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
  13. C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)
  14. 计蒜客模拟赛5 D2T1 成绩统计
  15. Shell命令-文件及目录操作之mkdir、mv
  16. Python设计模式 - UML - 对象图(Object Diagram)
  17. indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
  18. Django formset
  19. 【367】通过 python 实现 SVM 硬边界 算法
  20. Idea设置类注释模板

热门文章

  1. 因为不知道Java的CopyOnWriteArrayList,面试官让我回去等通知
  2. PHP imageaffinematrixget - 获取矩阵
  3. 2019 HL SC day4
  4. JavaScript动画实例:圆点的衍生
  5. AutoMapper 9.0的改造(续)
  6. 银弹谷零代码开发V百科|使用技巧:Vbase技巧二则之二
  7. VSCode C++环境配置(个人使用)
  8. Docker-compose实战
  9. java web Session会话技术(原理图解+功能+与Cookie的区别+基本使用)
  10. 6、Java 运算符