C++11 并发与多线程(一、基本概念)

一、并发,进程,线程的基本概念

  1. 并发:两个或者更多任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务(使用并发的原因:主要就是同时可以干多个事,提高性能)
  2. 进程:就是运行起来的可执行程序
  3. 线程:代码执行的另一条通路,每个进程都有一个主线程,并且主线程唯一(主线程和进程同在),线程并不是越多越好,每个线程都需要一个独立的空间,线程之间的切换要保存很多的中间状态

二、并发的两种方式

  1. 多进程并发:进程间通讯(同一台电脑上:管道,文件,消息队列,共享内存;不在同一台电脑上:socket通讯)
  2. 多线程并发:单个进程中,创建了多个线程(感觉像轻量级的进程),每个线程都有自己独立运行的路径,但是一个进程中的所有线程共享地址空间(共享内存),所以 全局变量,指针,引用都可以在线程之间传递,导致多线程开销远远小于多进程

多进程并发和多线程并发虽然可以混合使用,但建议优先考虑多线程技术

三、线程和进程优缺点比较

1. 优点

  1. 线程启动速度更快,线程被认为是更轻量级
  2. 线程的开销更低,通过共享内存的方式进行通讯比进程间通讯速度更快

2. 缺点

  1. 使用起来有一定难度,小心处理数据的一致性
  2. 不能在分布式系统下运行,进程则可以

四、C++11新标准线程库

  1. C++语言本身增加对多线程的支持,意味着可移植性(跨平台),大大减少程序员开发量;老式创建线程不支持跨平台
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值