当前位置: 首页 > news >正文

C++ Thread 源码 观后 自我感悟 整理

Thread的主要数据成员为_Thr

里面存储的是线程句柄和线程ID

先看看赋值运算符的移动构造

最开始判断线程的ID是否不为0

_STD就是使用std的域

如果线程ID不为0,那么就抛出异常

这里_New_val使用了完美转发,交换_Val和_New_val的值

_Thr = _STD exchange(_Other._Thr, {});

这里应该是把_Other._Thr的值赋值给_Thr,然后将_Other._Thr的值置空

最后返回线程本身

第一个判断我们已经看了,就是判断_Thr_Id != 0

如果_Thr_Id == 0了,则抛出异常

第二个我看了_Thrd_id()其实就是一个unsigned int,但是具体是什么我不知道,ID出问题了会抛出异常吧

第三个,是线程启动不成功,则抛出异常

主要这里是_Thrd_detach的调用,使得线程分离

这里也用了完美转发,也是Thread的构造函数

enable_if_t:

这里必须要模板参数为整形才能调用isInt

参考文章:C++(11):enable_if_t-CSDN博客

std::is_same_v:判断输入的类型是否是指定的模板类型

_Start函数内,就把函数和参数信息给到了_Thr._Hnd线程句柄上去了


定义类,还可以这么去玩

http://www.lryc.cn/news/324295.html

相关文章:

  • 2024阿里云2核2G服务器租用价格99元和61元一年
  • 刚刚!奥特曼剧透GPT-5,将在高级推理功能上实现重大进步
  • uniapp使用Canvas给图片加水印把临时文件上传到服务器
  • 小希的迷宫
  • MySQL索引剖析【了解背后的数据结构】
  • 004——内存映射(基于鸿蒙和I.MAX6ULL)
  • 150 Linux C++ 通讯架构实战6 服务器程序目录规划,makefile编写
  • OpenCV支持哪些类型的文件格式读写?
  • 数据库中使用IN操作效率问题
  • unity学习(67)——控制器Joystick Pack方向
  • MATLAB的使用(一)
  • JMeter并发工具的使用
  • 基于springboot+vue的毕业就业信息管理系统
  • 有什么小程序适合个人开发?
  • 【ARXIV2402】MambaIR
  • 【计算机网络篇】数据链路层(3)差错检测
  • 软件配置管理计划
  • 嵌入式备考错题汇总
  • 38 mars3d 对接地图图层 绘制点线面员
  • 什么是Webhook 和 HTTP Endpoint?
  • 小程序跨端组件库 Mpx-cube-ui 开源:助力高效业务开发与主题定制
  • GDC期间LayaAir启动全球化战略
  • 人工智能之Tensorflow批标准化
  • 自动化的免下车服务——银行、餐厅、快餐店、杂货店
  • Git常用指令总结
  • 水果软件FL Studio 21 for mac 21.2.3.3586破解版的最新版本2024介绍安装
  • 【保姆级】前端使用node.js基础教程
  • xilinx的高速接口构成原理和连接结构
  • git 上传文件夹至远端仓库的方法
  • 【鸿蒙系统】 ---OpenHarmony加快本地编译(二)