C#并发编程经典实例(第2版)
- ISBN:9787115550606
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:208
- 出版时间:2020-11-01
- 条形码:9787115550606 ; 978-7-115-55060-6
本书特色
如今的用户对响应式界面的期望越来越高,开发人员不得不努力赋予应用程序越来越强的能力,并发编程兼顾了这两大趋势。对现代应用程序来说,并发编程迅速地成为了不可或缺的需求。然而,众多开发人员依然认为并发编程富有挑战。如果你曾在并发编程十分复杂的年代里受挫,那么本书能帮助你重拾勇气。或许我们永远无法将并发编程形容为“小菜一碟”,但借助现代程序库以及.NET和C# 8.0的语言特性,你一定不会再如过去那般举步维艰。你将通过本书掌握以下内容。- 面向异步编程的async和await - 利用异步流让代码更强 - 利用.NET TPL探索并行编程 - 利用.NET TPL数据流库创建数据流管道 - 了解基于LINQ的System.Reactive - 利用线程安全且不可变的集合 - 使用并发代码进行单元测试 - 让线程池为己所用 - 探索如何整合并发方法 - 并发代码中的取消功能支持 - 深入理解支持异步的面向对象编程 - 辨识旧式异步代码,并为其编写适配器【赞誉】 “计算机领域的下一件大事就是普及大型并发编程。开发人员已然拥有了前所未有的力量,但并发编程对多数人来说依旧富有挑战。斯蒂芬将我们的目光聚焦到这个问题上,并通过易于理解又十分完备的内容,帮助我们更好地理解并发编程、线程、响应式编程模型、并行编程,以及其他相关知识。” ——Scott Hanselman,微软公司首席项目经理,负责ASP.NET和Azure Web工具“凭借涵盖技术之广泛,操作指南之实用,这本书无愧学习现代.NET并发编程的理想之选。” ——Jon Skeet,谷歌公司高级软件工程师“斯蒂芬·克利里已成为C#异步编程和并发编程领域的重要专家。这本书清晰、简练地阐述了这些技术的关键切入点和相关原则,能够帮助开发人员快速入门,并取得成功。” ——Stephen Toub,微软公司首席架构师
内容简介
本书全面讲解C#并发编程技术,侧重于.NET平台上较新、较实用的方法。新版内容全面更新,涉及异步编程基础、互操作、集合、常见场景及其处理技巧等,另外新增了关于异步流的章节。全书分为14章:章概览几种并发编程技术,包括异步编程、并行编程、响应式编程、数据流等;第2~6章对这些技术进行详细介绍;第7~13章深入探讨这些技术,内容包括测试技巧、互操作、取消、函数式面向对象编程、同步、调度等;4章涉及并发编程中的一些常见场景,并配有对应的解决方案。全书共包含近90个配有源代码的实例,可用于各种应用程序的开发。
目录
前言 xi
第 1章 并发概览 1
1.1 并发入门 1
1.2 异步编程 3
1.3 并行编程 7
1.4 响应式编程 10
1.5 数据流 12
1.6 多线程编程 14
1.7 并发应用程序集合 14
1.8 现代化设计 15
1.9 技术要点小结 15
第 2章 异步编程基础 16
2.1 暂停一段时间 16
2.2 返回已完成的任务 18
2.3 报告进度 20
2.4 等待一组任务完成 22
2.5 等待任意任务完成 24
2.6 在任务完成时处理它们 25
2.7 避免延续的上下文 28
2.8 async Task方法的异常处理 29
2.9 async void方法的异常处理 31
2.10 创建ValueTask 33
2.11 使用ValueTask 34
第3章 异步流 37
3.1 异步流和Task 37
3.2 异步流和IEnumerable 37
3.3 异步流和Task> 38
3.4 异步流和IObservable 38
3.5 创建异步流 40
3.6 消耗异步流 42
3.7 对异步流使用LINQ 44
3.8 异步流及其取消操作 46
第4章 并行编程基础 49
4.1 并行处理 49
4.2 并行聚合 51
4.3 并行调用 52
4.4 动态并行 53
4.5 PLINQ 55
第5章 数据流基础 57
5.1 关联的块 57
5.2 传播错误 59
5.3 块的解耦 60
5.4 块的节流 61
5.5 块的并行处理 62
5.6 创建自定义块 63
第6章 System.Reactive 基础 65
6.1 转换.NET事件 65
6.2 向上下文发送通知 68
6.3 使用窗口和缓冲来分组事件数据 70
6.4 通过节流和采样控制事件流 72
6.5 超时 74
第7章 测试 77
7.1 对async方法进行单元测试 78
7.2 对预期失败的async方法进行单元测试 80
7.3 对async void方法进行单元测试 82
7.4 对数据流网格进行单元测试 83
7.5 对System.Reactive可观察对象进行单元测试 84
7.6 通过伪造调度对System.Reactive可观察对象进行单元测试 86
第8章 互操作 90
8.1 异步包装“已完成”事件和异步方法 90
8.2 异步包装Begin方法和End方法 92
8.3 异步包装任意对象 93
8.4 异步包装并行代码 94
8.5 异步包装System.Reactive可观察对象 95
8.6 用于异步代码的System.Reactive可观察包装器 96
8.7 异步流与数据流网格 98
8.8 System.Reactive可观察对象和数据流网格 100
8.9 将System.Reactive可观察对象转换为异步流 101
第9章 集合 104
9.1 不可变的栈和队列 105
9.2 不可变列表 108
9.3 不可变set 109
9.4 不可变字典 111
9.5 线程安全的字典 113
9.6 阻塞队列 115
9.7 阻塞栈和阻塞背包 116
9.8 异步队列 117
9.9 节流队列 120
9.10 采样队列 122
9.11 异步栈和异步背包 124
9.12 阻塞异步队列 125
第 10章 取消 130
10.1 发起取消请求 131
10.2 通过轮询来响应取消 133
10.3 因超时而取消 135
10.4 取消async代码 136
10.5 取消并行代码 137
10.6 取消System.Reactive代码 138
10.7 取消数据流网格 140
10.8 注入取消请求 141
10.9 与其他取消系统互操作 143
第 11章 函数式面向对象编程 145
11.1 异步接口及继承 145
11.2 异步构造:工厂 147
11.3 异步构造:异步初始化模式 149
11.4 异步属性 152
11.5 异步事件 154
11.6 异步丢弃 156
第 12章 同步 160
12.1 阻塞锁 164
12.2 异步锁 166
12.3 阻塞信号 168
12.4 异步信号 169
12.5 节流 170
第 13章 调度 173
13.1 将工作调度到线程池 173
13.2 通过任务调度器执行代码 174
13.3 调度并行代码 177
13.4 使用调度器实现数据流同步 177
第 14章 场景 179
14.1 初始化共享资源 179
14.2 System.Reactive延迟计算 182
14.3 异步数据绑定 183
14.4 隐式状态 186
14.5 相同的同步代码和异步代码 188
14.6 通过数据流网格实现轨道式编程 190
14.7 节流进度更新 191
附录A 旧版平台支持 197
附录B 识别和诠释异步模式 201
关于作者 208
关于封面 208
作者简介
斯蒂芬·克利里(Stephen Cleary),C# MVP,在ARM固件领域以及Azure服务平台等方面有着丰富的经验。他一直投身于研发开源技术,*初致力于Boost C++库,而后发布了一些自行编写的库和工具。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0