8.muduo学习笔记之base_CurrentThread.{h&cc}

1. 说明

  • 这是一个命名空间,不是类
  • 主要是线程类和异常类中需要用到这个命名空间,异常类需要stackTrace()看函数栈信息,线程类需要其他的一些功能
  • 不明白为什么特意分个命名空间,不懂为啥不把这些需要的直接写到线程类中

2. 变量说明

  • 以下所有变量都是__thread修饰的,这样的变量是线程局部存储的,也就是说每个线程都有个独立的变量
  1. t_cachedTid
    • 线程真实pid缓存
    • 如果每次都调用getpid()获得pid,效率较低
  2. t_tidString
    • 这是tid的字符串表示形式
  3. t_tidStringLength
    • 如名,长度
  4. t_threadName
    • 如名,名字

3. 函数说明

1. 内联

  1. tid()
    • 如过是第一次调用,调用cacheTid(),再调用detail::gettid(),再调用系统的SYS_gettid,获得线程tid赋值给t_cacheTid,也就是获得当前线程id并缓存
    • 返回t_cacheTid的值
  2. tidString()
    • 返回t_tidString
  3. tidStringLength()
    • 返回t_tidStringLength
  4. name()
    • 返回t_threadName

2. 普通

  1. cacheTid()
    • 在Thread.cc中实现,主要是调用了gettid,给t_cacheTid和t_tidString,t_tidStringLength赋值
  2. isMainThread()
    • 判断是否是主线程
  3. sleepUsec(int64_t)
    • 睡眠
  4. stackTrace(bool)
    • 异常类中使用,主要是返回函数栈信息
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值