- 主题:[心得] 脉络分析:第1章 你好,C++并发世界 《C++并发编程实战
《C++并发编程实战》
第1章 你好,C++并发世界
C++11 最重要的新特性就是支持多线程
1.1 什么是并发
指两个或更多独立的活动同时发生
1.1.1 计算机中的并发
单个系统中同时执行多个独立的活动
1.一个处理器,具有单个处理单元或核心
假并发:任务切换。
第5章,第10章讨论。
2.多个处理器或者多核心处理器
硬件并发,真正的并发: 上下文切换。
3.有些处理器可以在一个核心上执行多个线程。
硬件并发系统,同样存在任务切换问题。
考虑硬件线程数量。
第8章。
1.1.2 并发的途径
两种基本途径
1. 多进程并发
多个,独立的,单线程的进程。
缺点:1.进程之间的通信: 复杂||速度慢
2.多个进程的开销
优点:1.比线程容易编写安全的并发代码
2.通过网络,在多个机器上运行。
C++没有为多进程通信提供原生支持。
2. 多线程并发
开销少,操作系统有更少的簿记要做。 —————— 诘屈聱牙
数据一致性问题。
3,4,5,8章
1.2 为什么使用并发
两点原因:
1.2.1 关注点划分
线程数量与CPU可用内核数量无关,给予概念的设计而不是试图增加吞吐量
1.2.2 为了性能
计算能力的提高不是源于单个任务的运行更快,而是可以并行的运行多个任务。
两种方式并发:
1. 任务并行,降低总的运行时间。
算法并行 + 数据并行
易并行 embarrassingly parallel ———————— 莫名其妙的翻译
任务划分 在第八章讨论
2. 使用可用的并行方式来解决更大的问题。
数据并行的一种应用
同样时间处理更多的数据。
1.2.3 不使用并行
1. 收益比不上成本
2. 性能增益不如预期大
3. 线程资源有限
线程池 ———— 第九章
4. 上下文切换,开销。
1.3 在C++中使用并发和多线程
1.3.1 历程
1.3.2 新标准
1.3.3 效率
成本:抽象惩罚
标准委员会目标:1. 足以替换低级的平台API切不会有损失。 ———— 这个翻译应该是从反面说的。
2. 确保能给与硬件直接打交道的人提供终极性能。
标准库提供高级的抽象和工具
1.3.4 平台相关工具
也可以使用native_handle()调用平台API,本书不涉及。
1.4 开始入门
例子程序
--
修改:CyberPunker FROM 203.218.252.*
FROM 203.218.252.*
这是什么?书的目录?
【 在 CyberPunker (网络朋克) 的大作中提到: 】
: 《C++并发编程实战》
: 第1章 你好,C++并发世界
: C++11 最重要的新特性就是支持多线程
: ...................
--
FROM 101.87.103.*
《C++并发编程实战》 的阅读笔记
【 在 javaboy 的大作中提到: 】
: 这是什么?书的目录?
:
--
FROM 203.218.252.*
C++并发,我的神啊。我调试此类程序的时候,噩梦般的经历。
--
FROM 111.201.52.*
一个协程调度,半小时写好,调了4个月。
所以 这类程序要写成框架,省的每个项目都搞这么一下子。
【 在 qliang27 的大作中提到: 】
: C++并发,我的神啊。我调试此类程序的时候,噩梦般的经历。
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.53.*