图书介绍
Windows并发编程指南PDF|Epub|txt|kindle电子书版本网盘下载
![Windows并发编程指南](https://www.shukui.net/cover/48/33205158.jpg)
- (美)杜飞编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111288206
- 出版时间:2010
- 标注页数:604页
- 文件大小:43MB
- 文件页数:619页
- 主题词:窗口软件,Windows-程序设计
PDF下载
下载说明
Windows并发编程指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 概念1
第1章 概述1
1.1 为什么需要并发1
1.2 程序架构与并发2
1.3 并行的层次4
1.4 为什么不需要并发5
1.5 小结5
延伸阅读6
第2章 同步与时间7
2.1 程序状态的管理7
2.1.1 共享状态与私有状态的区分8
2.1.2 状态机与时间11
2.1.3 独立性17
2.1.4 不变性19
2.2 同步:种类与实现技术22
2.2.1 数据同步23
2.2.2 协作与控制同步35
2.3 小结43
延伸阅读43
第二部分 机制45
第3章 线程45
3.1 从高层面上来看线程45
3.1.1 Windows线程是什么46
3.1.2 CLR线程是什么48
3.1.3 显式线程操作及其替代方法49
3.2 线程的诞生与消亡50
3.2.1 线程的创建50
3.2.2 线程终止59
3.2.3 DllMain66
3.2.4 线程局部存储68
3.3 小结72
延伸阅读73
第4章 线程的高级内容74
4.1 线程的状态74
4.1.1 用户态线程栈74
4.1.2 内部数据结构(KTHREAD、ETHREAD和TEB)85
4.1.3 上下文89
4.2 线程的创建过程与终止过程90
4.2.1 线程创建的具体流程90
4.2.2 线程终止的具体流程91
4.3 线程调度91
4.3.1 线程的状态92
4.3.2 优先级94
4.3.3 时间片96
4.3.4 优先级与时间片调整97
4.3.5 睡眠与退让99
4.3.6 挂起100
4.3.7 关联性:优先在某个CPU上运行101
4.4 小结107
延伸阅读107
第5章 Windows内核同步机制108
5.1 基础知识:触发和等待108
5.1.1 为什么要使用内核对象110
5.1.2 在非托管代码中执行等待操作111
5.1.3 托管代码122
5.1.4 异步过程调用124
5.2 内核对象的使用126
5.2.1 互斥体126
5.2.2 信号量131
5.2.3 互斥体/信号量使用示例:阻塞/有界的队列134
5.2.4 自动重置事件和手动重置事件136
5.2.5 等待定时器141
5.2.6 触发对象与自动等待146
5.2.7 内核对象的调试152
5.3 小结153
延伸阅读154
第6章 数据同步与控制同步155
6.1 互斥156
6.1.1 Win32临界区156
6.1.2 CLR锁166
6.2 读/写锁(RWL)177
6.2.1 Windows Vista中的轻量级读/写锁178
6.2.2 .NET框架中的轻量级读/写锁(3.5)181
6.2.3 .NET框架中原来的读/写锁185
6.3 条件变量187
6.3.1 Windows Vista条件变量187
6.3.2 .NET框架的Monitor191
6.3.3 被守护区域192
6.4 小结193
延伸阅读193
第7章 线程池195
7.1 线程池的基本知识195
7.1.1 三种方式:Windows Vista、Windows遗留代码以及CLR196
7.1.2 通用功能197
7.2 Windows线程池199
7.2.1 Windows Vista线程池199
7.2.2 遗留的Win32线程池219
7.3 CLR线程池226
7.3.1 工作项226
7.3.2 I/O完成端口228
7.3.3 定时器231
7.3.4 注册等待233
7.3.5 记住(再次提醒):你并不拥有这些线程234
7.3.6 线程池的线程管理235
7.3.7 调试240
7.3.8 案例分析:优先级分层以及在线程池之上的隔离性241
7.4 在使用线程池时的性能244
7.5 小结249
延伸阅读249
第8章 异步编程模型251
8.1 异步编程模型(APM)251
8.1.1 汇集:四种方式253
8.1.2 实现IAsyncResult261
8.1.3 在.NET框架的哪些地方使用了APM265
8.1.4 ASP.NET异步页265
8.2 基于事件的异步模式266
8.2.1 基础知识267
8.2.2 支持取消269
8.2.3 支持进度报告以及增量结果269
8.2.4 在.NET框架的哪些地方将使用EAP270
8.3 小结270
延伸阅读271
第9章 纤程272
9.1 纤程简介272
优点与缺点273
9.2 纤程的使用275
9.2.1 创建新的纤程275
9.2.2 将线程转换为纤程277
9.2.3 判断线程是否为纤程278
9.2.4 纤程间的切换278
9.2.5 删除纤程279
9.2.6 切换当前线程的示例280
9.3 与纤程相关的其他主题282
9.3.1 纤程局部存储282
9.3.2 线程关联性283
9.3.3 案例分析:纤程与CLR285
9.4 构建用户态的调度器287
9.4.1 实现287
9.4.2 关于栈阻塞与无栈阻塞301
9.5 小结301
延伸阅读301
第三部分 技术303
第l0章 内存模型与无锁编程303
10.1 内存加载与存储等操作的重新排序303
10.1.1 实际运行的顺序并非总是编写的顺序305
10.1.2 将临界域作为栅栏307
10.1.3 数据依赖性及其对重排的影响307
10.2 硬件原子性308
10.2.1 普通加载指令和存储指令的原子性309
10.2.2 互锁操作312
10.3 内存一致性模型322
10.3.1 硬件内存模型323
10.3.2 内存栅栏325
10.3.3 .NET内存模型328
10.3.4 无锁编程329
10.4 低锁代码的示例330
10.4.1 延迟初始化与双重检查锁定330
10.4.2 无阻塞栈和ABA问题341
10.4.3 重新回顾Dekker的算法345
10.5 小结346
延伸阅读346
第11章 并发的危害348
11.1 正确性危害348
11.1.1 数据竞争348
11.1.2 递归与重入354
11.1.3 锁与进程关闭358
11.2 活跃性危害366
11.2.1 死锁366
11.2.2 遗失的唤醒384
11.2.3 活锁386
11.2.4 锁护送效应388
11.2.5 “蜂拥”现象389
11.2.6 两步舞390
11.2.7 优先级反转与饥饿391
11.3 小结392
延伸阅读392
第12章 并行容器394
12.1 细粒度锁定395
12.1.1 数组395
12.1.2 FIFO队列396
12.1.3 链表399
12.1.4 字典(散列表)403
12.2 无锁408
12.2.1 无锁FIFO队列408
12.2.2 工作密迁队列411
12.3 协作式容器415
12.3.1 生产者/消费者数据结构415
12.3.2 通过栅栏来分阶段计算422
12.4 小结426
延伸阅读426
第13章 数据并行与任务并行427
13.1 数据并行428
13.2 任务并行444
13.2.1 分支/合并算法445
13.2.2 数据流并行(Future抽象与Promise抽象)447
13.2.3 递归457
13.2.4 流水线462
13.2.5 查找467
13.3 基于消息的并行468
13.4 一些共同问题469
13.4.1 并发的异常469
13.4.2 取消475
13.5 小结477
延伸阅读477
第14章 性能与可伸缩性478
14.1 并行硬件架构478
14.1.1 SMP、CMP与HT478
14.1.2 超标量执行479
14.1.3 内存的层次结构480
14.1.4 Visual Studio中的性能分析工具491
14.2 加速比:并行代码与串行代码492
14.2.1 决定“采用并行”492
14.2.2 测量并行带来的性能提升493
14.2.3 Amdahl定律496
12.2.4 关键路径以及负载不均衡497
14.2.5 垃圾收集与可伸缩性497
14.3 自旋等待498
14.3.1 如何在Windows上正确地自旋499
14.3.2 纯自旋锁502
14.3.3 Mellor-Crummey-Scott(MCS)锁506
14.4 小结508
延伸阅读509
第四部分 系统511
第15章 输入与输出511
15.1 重叠I/O511
15.1.1 重叠对象512
15.1.2 Win32异步I/O515
15.1.3 .NET框架的异步I/O534
15.2 I/O取消537
15.2.1 当前线程的异步I/O取消538
15.2.2 其他线程上的同步I/O取消538
15.2.3 任意线程的异步I/O取消539
15.3 小结539
延伸阅读540
第16章 图形用户界面541
16.1 GUI线程模型541
16.1.1 单线程套间(STA)543
16.1.2 响应度:它是什么545
16.2 .NET异步GUI功能545
16.2.1 .NET的GUI框架546
16.2.2 同步上下文552
16.2.3 异步操作558
16.2.4 一个方便的类:BackgroundWorker559
16.3 小结561
延伸阅读562
第五部分 附录563
附录A 为.NET并发程序设计可重用的库563
附录B .NET的并行扩展575