图书介绍

C#并行编程高级教程 精通.NET 4 Parallel ExtensionsPDF|Epub|txt|kindle电子书版本网盘下载

C#并行编程高级教程 精通.NET 4 Parallel Extensions
  • (美)希拉里著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302273561
  • 出版时间:2012
  • 标注页数:487页
  • 文件大小:128MB
  • 文件页数:506页
  • 主题词:C语言-程序设计-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C#并行编程高级教程 精通.NET 4 Parallel ExtensionsPDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 基于任务的程序设计1

1.1使用共享内存的多核系统2

1.1.1共享内存多核系统与分布式内存系统之间的区别3

1.1.2并行程序设计和多核程序设计4

1.2理解硬件线程和软件线程5

1.3理解Amdahl法则8

1.4考虑Gustafson法则11

1.5使用轻量级并发模型14

1.6创建成功的基于任务的设计15

1.6.1以并发的思想指导设计16

1.6.2理解交错并发、并发和并行之间的区别17

1.6.3并行化任务18

1.6.4尽量减少临界区18

1.6.5理解多核并行程序的设计原则19

1.7为NUMA架构和更高的可扩展性做好准备20

1.8判断是否适合并行化24

1.9小结25

第2章 命令式数据并行27

2.1加载并行任务27

2.1.1 System.Threading.Tasks.Parallel类29

2.1.2 Parallel.Invoke30

2.2将串行代码转换为并行代码37

2.2.1检测可并行化的热点37

2.2.2测量并行执行的加速效果40

2.2.3理解并发执行42

2.3循环并行化43

2.3.1 Parallel.For43

2.3.2 Parallel.ForEach49

2.3.3从并行循环中退出56

2.4指定并行度62

2.4.1 ParallelOptions63

2.4.2计算硬件线程65

2.4.3逻辑内核并不是物理内核66

2.5通过甘特图检测临界区67

2.6小结68

第3章 命令式任务并行69

3.1创建和管理任务70

3.1.1 System.Threading.Tasks. Task71

3.1.2理解Task状态和生命周期72

3.1.3通过使用任务来对代码进行并行化74

3.1.4等待任务完成80

3.1.5忘记复杂的线程81

3.1.6通过取消标记取消任务82

3.1.7从任务返回值88

3.1.8 TaskCreationOptions90

3.1.9通过延续串联多个任务90

3.1.10编写适应并发和并行的代码95

3.2小结96

第4章 并发集合97

4.1理解并发集合提供的功能98

4.1.1 System.CollectionsConcurrent100

4.1.2 ConcurrentQueue101

4.1.3理解并行的生产者… 消费者模式104

4.1.4 ConcurrentStack116

4.1.5将使用数组和不安全集合的代码转换为使用并发集合的代码121

4.1.6 ConcurrentBag122

4.1.7 IProducerConsumerCollection129

4.1.8 BlockingCollection129

4.1.9 ConcurrentDictiona143

4.2小结147

第5章 协调数据结构149

5.1通过汽车和车道理解并发难题150

5.1.1非预期的副作用150

5.1.2竞争条件151

5.1.3死锁152

5.1.4使用原子操作的无锁算法153

5.1.5使用本地存储的无锁算法154

5.2理解新的同步机制156

5.3使用同步原语157

5.3.1通过屏障同步并发任务158

5.3.2屏障和ContinueWhenAll164

5.3.3在所有的参与者任务中捕捉异常165

5.3.4使用超时166

5.3.5使用动态数目的参与者171

5.4使用互斥锁172

5.4.1使用Monitor176

5.4.2使用锁超时177

5.4.3将代码重构为避免使用锁180

5.5将自旋锁用作互斥锁原语183

5.5.1使用超时186

5.5.2使用基于自旋的等待187

5.5.3自旋和处理器出让190

5.5.4使用volatile修饰符193

5.6使用轻量级的手动重置事件194

5.6.1使用ManualResetEventSlim进行自旋和等待194

5.6.2使用超时和取消199

5.6.3使用ManualResetEvent203

5.7限制资源的并发访问204

5.7.1使用SemaphoreSlim205

5.7.2使用超时和取消209

5.7.3使用Semaphore209

5.8通过CountdownEvent简化动态fork和join场景211

5.9使用原子操作215

5.10小结220

第6章PLNQ:声明式数据并行221

6.1从LINQ转换到PLINQ222

6.1.1 ParallelEnumerable及其AsParallel方法224

6.1.2 AsOrdered和orderby子句225

6.2指定执行模式228

6.3理解PLINQ中的数据分区229

6.4通过PLINQ执行归约操作234

6.5创建自定义的PLINQ聚合函数235

6.6并发PLINQ任务240

6.7取消PLINQ243

6.8指定所需的并行度245

6.8.1 WithDegreeOfParallelism245

6.8.2测量可扩展性247

6.9使用ForAll249

6.9.1 foreach和ForAll的区别250

6.9.2测量可扩展性251

6.10通过WithMergeOptions配置返回结果的方式253

6.11处理PLINQ抛出的异常255

6.12使用PLINQ执行MapReduce 算法257

6.13使用PLINQ设计串行多步操作259

6.14小结261

第7章Visual Studio 2010的任务调试能力263

7.1充分利用多显示器的支持264

7.2理解并行任务调试器窗口267

7.3查看Parallel Stacks图273

7.4跟踪并发代码280

7.4.1调试匿名方法288

7.4.2查看方法290

7.4.3在源代码中查看线程292

7.5检测死锁294

7.6小结300

第8章 线程池301

8.1探究任务的底层技术301

8.2理解新的CLR 4线程池引擎303

8.2.1理解全局队列303

8.2.2等待工作线程完成工作313

8.2.3跟踪动态数目的工作线程319

8.2.4使用任务(而不是线程)将作业加入队列323

8.2.5理解任务和线程池之间的关系326

8.2.6理解局部队列和工作窃取算法330

8.2.7指定自定义的任务调度器335

8.3小结340

第9章 异步编程模型341

9.1结合使用异步编程和任务342

9.1.1使用TaskFactory.FromAsync343

9.1.2编写异步方法执行结束之后的延续348

9.1.3合并多个并发异步操作的结果349

9.1.4执行异步WPF UI更新351

9.1.5执行异步Windows Forms UI更新358

9.1.6创建执行EAP操作的任务365

9.1.7使用TaskCompletionSource373

9.2小结377

第10章 并行测试和调优379

10.1准备并行测试379

10.1.1使用性能剖析功能383

10.1.2测量并发性385

10.2常见问题模式的解决方案394

10.2.1串行化的执行395

10.2.2锁争用397

10.2.3锁封护398

10.2.4申请超额401

10.2.5申请不足404

10.2.6分区问题406

10.2.7工作站垃圾回收开销408

10.2.8使用服务器垃圾回收411

10.2.9 I/O瓶颈412

10.2.10主线程过载413

10.3理解伪共享416

10.4小结419

第11章 向量化、SIMD指令以及其他并行库421

11.1理解SIMD和向量化421

11.2从MMX到SSE4.X和AVX423

11.3使用Intel Math KernelLibrary425

11.3.1使用适用于多核的高度优化的软件函数433

11.3.2将基于任务的编程和外部优化的库混合使用434

11.3.3并行生成伪随机数434

11.4使用Intel IntegratedPerformance Primitives439

11.5小结445

附录A.NET4中与并行相关的类图447

附录B并发UML模型461

附录C Parallel Extensions Extras469

热门推荐