muduo库学习第三天线程类和线程池的实现

每天写文章相当于对前面的知识点进行总结,并且以后好复习。

线程类的实现其实简化起来比较简单,但是作者写得我有点看不懂,所以看了两天后我将其简化了并且测试通过了首先是Current头文件的学习,然后是Thread头文件的学习,然后是Threadpool的学习。

目录

一 Current类的学习

二 Thread类的学习

三 线程池的学习


一 Current类的学习

知识点:

1 __thread

线程共享进程的地址空间,全局变量,有自己的栈,程序计数器和寄存器等资源,也就是说全局变量是线程共享的,

所以当我们需要既是全局变量,又要是线程独享的话,我们需要将变量声明为 __thread,注意两道下划线。这个关键字只能修饰和c语言兼容的变量类型,不支持调用虚函数,构造函数,析构函数等

2 tid

在Linux中线程是以进程的方式实现的,以进程之间共享地址空间全局变量这些来实现

每个线程和进程一样都有一个task_struct结构体,而task_struct中有个成员pid就是唯一标识进程的,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即 不同进程中的线程可能有相同的id)有时候我们可能需要知道线程的真实pid。比如进程P1要向另外一个进程P2中的某个线程发送信号时,既不能使用P2的pid,更不能使用线程的pthread id,而只能使

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值