如果你希望通过并发编程来充分发挥多核处理器的强大功能,那么本书将为你提供所需的理论知识和实际经验。《并发的艺术》是为数不多的几本介绍如何在多核处理器的共享内存模型中实现算法的书籍之一,它并非仅仅介绍一些理论模型或者分布式内存架构。本书详细分析了各种示例程序,这些内容非常有助于你将串行代码转换为并行代码,此外还介绍了如何避免一些常见的错误。
本书的作者是Intel公司的一位资深工程师,他从事并发编程已经有20多年的时间,本书将帮助你:
- 分析在共享内存模型与在分布式内存模型之间的编程差异。
- 学习如何设计多线程程序,包括对程序的测试和调优。
- 了解如何最有效地使用各种不同的线程化机制,包括Windows线程,POSIX线程,OpenMP以及Intel Threading Building Blocks。
- 掌握如何实现各种并发算法,包括排序,搜索,图以及其他一些使用的计算。
《并发的艺术》还介绍了如何在算法中实现高可伸缩性,使得算法能够充分发挥将来包含更多核处理器的强大功能。对于开发并行代码算法的程序员来说,本书是必不可少的。
译者序
前言
第1章 并行让程序运行得更快
1.1 你可能会想到的一些问题
1.2 采用线程化方法的4个步骤
1.3 并行算法的背景知识
1.4 共享内存编程与分布式内存编程的比较
1.5 本书采用的并发编程方法
第2章 是否采用并发
2.1 并发算法的设计模型
2.2 哪些算法不能并行
第3章 算法正确性证明与性能衡量
3.1 并行算法的验证
3.2 示例:临界区问题
3.3 性能测试(程序的执行情况如何)
3.4 硬件并行性的发展历史
第4章 多线程程序设计中的8条简单原则
4.1 规则1:找出真正独立的运算
4.2 规则2:在尽可能高的层次上实现并发
4.3 规则3:尽早考虑通过增加处理器核的数量来获得可伸缩性
4.4 规则4:尽可能使用线程安全的库
4.5 规则5:使用正确的多线程模型
4.6 规则6:永远不要假设程序会按照某种特定的顺序执行
4.7 规则7:尽可能使用线程局部存储或者与特定数据相关的锁
4.8 规则8:要敢于对代码进行修改以获得更好的并发性
第5章 线程化库
5.1 隐式线程化
5.2 显式线程化
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 基数排序
第9章 搜索
9.1 未排序的数据序列
9.2 二分搜索
第10章 图算法
10.1 深度优先搜索
10.2 最短路径问题
10.3 最小生成树
第11章 线程化工具
11.1 调试器
11.2 性能工具
11.3 还剩下什么内容没有介绍
11.4 再接再厉
术语表
封面说明
《石门铭》内容简介:《石门铭》,又称《泰山羊祉开复石门铭》。北魏宣武帝永平二年(五〇九)立,记述了梁、秦二州刺史羊祉和左校
本书按字母顺序编排,查阅方便,能迅速根据名称检索设计原则。对于有兴趣解决具体问题的读者,本书根据设计师常见的问题给通则作
Clojure是一种基于Java虚拟机的动态编程语言。如果你要转移到函数式编程,或是要应对来自并发的挑战,那么,Clojure是你的首选语
计算机在材料科学与工程中的应用 内容简介 本书内容包括:概述;材料科学研究中的数学模型及分析方法;材料科学研究中主要物理场的数值模拟;材料数据库与专家系统;计算...
《从零开始学炒股票与基金(全彩图解版)》内容简介:本书零基础、全图解,以通俗易懂的实战演练方式详细讲解了炒股票与炒基金的基
《JavaScript异步编程:设计快速响应的网络应用》讲述基本的异步处理技巧,包括PubSub、事件模式、Promises等,通过这些技巧,可
《AWS Lambda实战》内容简介:本书以实例为驱动,教会读者如何使用事件驱动的方法来开发后端应用程序。从AWSLambda的基础介绍开始,
《软件定义网络核心原理与应用实践》内容简介:《软件定义网络核心原理与应用实践》分为核心原理和应用实践两大部分,对软件定义网
《食品雕刻项目化教程》内容简介:《食品雕刻项目化教程》基于“项目引导、任务驱动”的项目化教学方式编写,体现“学以致用”、“
《赶时间的人》内容简介:本书作者王计兵是一个外卖员,奔跑的行程累计15万公里,相当于沿着万里长城跑15个来回。在城市穿梭的日子
《小白学运营》是针对网络游戏行业,产品运营及数据分析工作的入门读物,主要为了帮助刚入行或有意从事游戏产品运营和数据分析的
推荐系统开发实战 本书特色 本书是一本关于推荐系统从入门到进阶的读物,采用“理论 实践”的形式展开,不仅对各种推荐算法进行了介绍,还对算...
学者型的弗洛伊德情场上风采依然,缠绵的爱恋、炽热的情感、渊博的学识向人们展示了欧洲最优秀知识分子的生活与精神状态。本书所
《世界经典步枪TOP10》内容简介:步枪是世界上产量最高、应用最广泛的单兵轻武器。本书以轻武器发展的重要节点划分历史时期,纵向回
51单片机应用从零开始 内容简介 8051单片机不仅是国内用得*多的单片机之一,同时也是*适合初学者入门学习的一款单片机。一旦用户对它的应用卜手之后,即能开发电...
Learnhowtocreateresponsive,data-drivenwebsiteswithPHP,MySQL,andJavaScript-whethe...
《现代西方哲学十五讲》内容简介:本书从叔本华讲起,到德里达结束,介绍了29位现代西方哲学家的生平和主要哲学观点,理清各位哲学
《数码单反摄影从入门到精通(畅销升级版)》内容简介:本书共分为4篇21章,向读者全面而深刻地展示了单反摄影各方面的知识和具体实
《期货短线:量价分析与多空技巧》内容简介:本书讲解了上百个实例,侧重于介绍期货短线的交易技术,系统地讲解了做期货短线交易应
《ROS机器人项目开发11例(原书第2版)》内容简介:本书涵盖新的ROS发行版中的项目——ROS Melodic Morenia with Ubuntu Bio...