【C++11多线程并发编程】CH1_并发基本概念及实现,进程、线程基本概念

本博文由 youngpan1101 出品,转载请注明出处。 
文章链接:https://blog.csdn.net/youngpan1101/article/details/102085704
作者: 宋洋鹏(youngpan1101) 
邮箱: yangpeng_song@163.com

ps:该博文是《王健伟老师的:c++11多线程并发视频教程》的课后笔记。


并发 

定义:两个或者更多的任务(独立的活动) 同时发生(进行),即一个程序同时执行多个独立的任务。

以往计算机是单核的,某一个时刻只能执行一个任务,主要是有操作系统负责调度,进行所谓的“任务切换”,这是并发的假象,这种上下文切换时需要时间开销的。

随着计算机硬件的发展,后面有了多核,能够实现真正意义上的并发,即可以并行执行多个任务,这也是为了满足日益增长的对计算机的性能要求。

进程

进程就是一个可执行程序的执行过程。

线程

每个进程都有一个主线程(唯一的),线程是用来执行代码的,可以理解成代码的执行通路。除了主线程之外,可以通过写代码来创建其他线程,即创建其他的通路。每多创建一个线程,意味着在同一时刻可以多执行一个任务。

线程并不是越多越好(线程数量建议不要超过200个,具体视项目情况而定),每个线程都需要一个独立的堆栈空间(1M),用于保存线程之间切换的中间状态,有时线程多反而会降低效率。

每个线程都有自己独立的运行路径,但是一个进程中的所有线程共享地址空间(共享内存)。全局变量、指针和引用都可以在线程之间传递,所以多线程的开销远远低于多进程,建议优先考虑多线程。

C++11新标准线程库

C++11新标准的语言本身增加了对多线程的支持,意味着跨平台的可移植性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值