求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
C++并发编程(中文版)
前言
第1章 你好,C++的并发世界!
1.1 何谓并发
1.2 为什么使用并发?
1.3 C++中的并发和多线程
1.4 开始入门
1.5 本章总结
第2章 线程管理
2.1 线程管理的基础
2.2 向线程函数传递参数
2.3 转移线程所有权
2.4 运行时决定线程数量
2.5 识别线程
2.6 本章总结
第3章 线程间共享数据
3.1 共享数据带来的问题
3.2 使用互斥量保护共享数据
3.3 保护共享数据的替代设施
3.4 本章总结
第4章 同步并发操作
4.1 等待一个事件或其他条件
4.2 使用期望等待一次性事件
4.3 限定等待时间
4.4 使用同步操作简化代码
4.5 本章总结
第5章 C++内存模型和原子类型操作
5.1 内存模型基础
5.2 C++中的原子操作和原子类型
5.3 同步操作和强制排序
5.4 本章总结
第6章 基于锁的并发数据结构设计
6.1 为并发设计的意义何在?
6.2 基于锁的并发数据结构
6.3 基于锁设计更加复杂的数据结构
6.4 本章总结
第7章 无锁并发数据结构设计
7.1 定义和意义
7.2 无锁数据结构的例子
7.3 对于设计无锁数据结构的指导建议
7.4 本章总结
第8章 并发代码设计
8.1 线程间划分工作的技术
8.2 影响并发代码性能的因素
8.3 为多线程性能设计数据结构
8.4 设计并发代码的注意事项
8.5 在实践中设计并发代码
8.6 本章总结
第9章 高级线程管理
9.1 线程池
9.2 中断线程
9.3 本章总结
第10章 多线程程序的测试和调试
10.1 与并发相关的错误类型
10.2 定位并发错误的技术
10.3 本章总结
第11章 C++11语言特性简明参考(部分)
11.1 右值引用
11.2 删除函数
11.3 默认函数
11.4 常量表达式函数
11.5 Lambda函数
11.6 变参模板
11.7 自动推导变量类型
11.8 线程本地变量
 



 
目录
前言
作者:Anthony Williams  译者:陈晓伟
46 次浏览
5次  

    我与多线程的邂逅是在毕业后的第一份工作中。那时我们正在写一个填充数据库的程序。不过,需要处理的数据量很大,每条记录都是独立的,并且需要在插入数据库之前,对数据量进行合理分配。为了充分利用10核UltraSPARC CPU(Ultra Scalable Processor ARChitecture,终极可扩充处理器架构(大端)),我们使用了多线程,每个线程处理自己所要记录的数据。我们使用C++和POSIX线程库完成编码,也犯了一些错误——当时,多线程对于我们来说是一个新事物——不过,最后我们还是完成了。也是在做这个项目的时候,我开始注意C++标准委员会和刚刚发布的C++标准。

    我对多线程和并发有着浓厚的兴趣。虽然,别人觉得多线程和并发难用、复杂,还会让代码出现各种各样的问题,不过,在我看来这是一种强有力的工具,能让你充分使用硬件资源,让你的程序运行的更快。

    从那以后,我开始使用多线程和并发在单核机器上对应用性能和响应时间进行改善。这里,多线程可以帮助你隐藏一些耗时的操作,比如I/O操作。同时,我也开始学习在操作系统级别上使用多线程,并且了解Intel CPU如何处理任务切换。

    同时,对C++的兴趣让我与 ACCU 有了联系,之后是 BSI (英国标准委员会)中的C++标准委员会,还有Boost。也是因为兴趣的原因,我参与了Boost线程库的初期开发工作,虽然初期版本已经被开发者们放弃,但是我抓住了这次机会。直到现在,我依然是Boost线程库的主要开发者和维护者。

    作为C++标准委员会的一员,对现有标准的缺陷的和不足进行改善,并为新标准提出建议(新标准命名为C++0x是希望它能在2009年发布,不过最后因为2011年才发布,所以官方命名为C++11)。我也参与很多BSI的工作,并且我也为自己的建议起草建议书。当委员会将多线程提上C++标准的日程时,我高兴得差点飞起来,因为我起草及合著的多线程和并发相关的草案,将会成为新标准的一部分。新标准将我(计算机相关)的两大兴趣爱好——C++和多线程——结合起来,想想还有点小激动。

    本书旨在教会其他C++开发者如何安全、高效地使用C++11线程库。我对C++和多线程的热爱,希望你也能感受得到。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



46 次浏览
5次