第一章 你好,c++的并发世界!

提纲:

何谓并发和多线程

应用程序为什么要使用并发和多线程

C++的并发史

一个简单的C++多线程程序

   

   

新C++标准( 也被称为C++11或C++0x) 在2011年发布,带来一系列的变革让C++编程更加简单和高效。其中一个最重要的新特性就是对多线程的支持。

   

   

何谓并发(concurrency)?何谓多线程(multithreading)?

1.1 何谓并发

1.1.1 计算机系统中的并发

计算机领域的并发指的是在单个系统里同时执行多个独立的任务,而非顺序的进行一些活动。

   

   

   

   

   

1.1.2 并发的途径

多进程并发

使用并发的第一种方法,是将应用程序分为多个独立的进程,它们在同一时刻运行,就像同

时进行网页浏览和文字处理一样。如图1.3所示,独立的进程可以通过进程间常规的通信渠道

传递讯息(信号、套接字、文件、管道等等)。

缺点:

不过,这种进程之间的通信通常不是设置复杂,就是速度慢,这是因为操作系统会在进程间提供了一定的保护措施,以避免一个进程去修改另一个进程的数据。还一个缺点是,运行多个进程所需的固定开销:需要时间启动进程,操作系统需要内部资源来管理进程,等等

   

   

   

多线程并发

并发的另一个途径,在单个进程中运行多个线程。线程很像轻量级的进程:每个线程相互独立运行,且线程可以在不同的指令序列中运行。但是,进程中的所有线程都共享地址空间,并且所有线程访问到大部分数据———全局变量仍然是全局的,指针、对象的引用或数据可以在线程之间传递。虽然,进程之间通常共享内存,但这种共享通常也是难以建立,且难以管理。因为,同一数据的内存地址在不同的进程中是不相同。图1.4展示了一个进程中的两个线程通过共享内存进行通信。

缺点:

地址空间共享,以及缺少线程间数据的保护,使得操作系统的记录工作量减小,所以使用多线程相关的开销远远小于使用多个进程。不过,共享内存的灵活性是有代价的:如果数据要

被多个线程访问,那么程序员必须确保每个线程所访问到的数据是一致的

1.2 为什么使用并发?

   

 

原因

 关注点分离(SOC)

{

性能

1.3 C++中使的并发和多线程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值