C++多线程实战编程第二章笔记

今天是2019年的第一天,还来不及感慨2018已经从指尖溜走的我已蜗居在实验室准备开题。既然是放假也忙里偷闲,抽点时间写点读书笔记。
今天要说的是C++多线程编程第二章,第二章的题目就是线程管理,分为以下几个章节:1、线程基础 2、向线程函数传递参数 3、转移线程所有去哪 4、运行时决定线程数量 5、识别线程 下面就讲讲我对这几章的认识。
第一节最主要是讲线程的基础知识。首先是线程的启动,线程的启动与构造函数调用想绑定,只要线程被构造,线程被被启动。一旦线程被启动,就要确定等待线程结束或者是让其自主运行(detach/join)。至于detach和Join的区别可以见我上一篇博文,对于join的位置也是有一定的讲究,也可以使用RAII方式,将join函数放到类的析构函数中,可以有效避免出错。
第二节主要是如何传参,线程传参很简单,只要在线程的构造函数后加入需要传入的参数,而书中后面详述大多是由于隐形转换等造成的指针悬挂出错等问题,在这里我就不多做介绍。
第三节主要介绍线程转移权归属,线程转移权归属最主要还是依赖于C++11最新特性move和右值。
在这里插入图片描述
通过和普通常量相同的方式也能解决所有权问题,需要注意的一点就是所有权转移可以进行在函数外。
第四节主要是讲关于如何统计程序中线程个数,一般使用std::thread::hardware_concurrency()来对线程进行计数。对于线程的统计对于程序提高运行效率非常有好处,不如说统计线程总数为5,就不需要将CPU所有核心全部打开,从而提高效率。
第五节主要是识别线程相关问题,这个问题应该是最简单,就是依赖于get_id进行。即std::cout<<std::this_thread::get_id();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值