C#并发编程经典实例(第2版)
Stephen Cleary
韩峰 译
出版时间:2020年11月
页数:208
如今的用户对响应式界面的期望越来越高,开发人员不得不努力赋予应用程序越来越强的能力,并发编程兼顾了这两大趋势。对现代应用程序来说,并发编程迅速地成为了不可或缺的需求。然而,众多开发人员依然认为并发编程富有挑战。
如果你曾在并发编程十分复杂的年代里受挫,那么本书能帮助你重拾勇气。或许我们永远无法将并发编程形容为“小菜一碟”, 但借助现代程序库以及.NET和C# 8.0的语言特性,你一定不会再如过去那般举步维艰。你将通过本书掌握以下内容。
● 面向异步编程的async和await
● 利用异步流让代码更强
● 利用.NET TPL探索并行编程
● 利用.NET TPL数据流库创建数据流管道
● 了解基于LINQ的System.Reactive
● 利用线程安全且不可变的集合
● 使用并发代码进行单元测试
● 让线程池为己所用
● 探索如何整合并发方法
● 并发代码中的取消功能支持
● 深入理解支持异步的面向对象编程
● 辨识旧式异步代码,并为其编写适配器
  1. 第2版赞誉
  2. 前言
  3. 第1章 并发概览
  4. 1.1 并发入门
  5. 1.2 异步编程
  6. 1.3 并行编程
  7. 1.4 响应式编程
  8. 1.5 数据流
  9. 1.6 多线程编程
  10. 1.7 并发应用程序集合
  11. 1.8 现代化设计
  12. 1.9 技术要点小结
  13. 第2章 异步编程基础
  14. 2.1 暂停一段时间
  15. 2.2 返回已完成的任务
  16. 2.3 报告进度
  17. 2.4 等待一组任务完成
  18. 2.5 等待任意任务完成
  19. 2.6 在任务完成时处理它们
  20. 2.7 避免延续的上下文
  21. 2.8 async Task方法的异常处理
  22. 2.9 async void方法的异常处理
  23. 2.10 创建ValueTask
  24. 2.11 使用ValueTask
  25. 第3章 异步流
  26. 3.1 异步流和Task
  27. 3.2 异步流和IEnumerable
  28. 3.3 异步流和Task>
  29. 3.4 异步流和IObservable
  30. 3.5 创建异步流
  31. 3.6 消耗异步流
  32. 3.7 对异步流使用LINQ
  33. 3.8 异步流及其取消操作
  34. 第4章 并行编程基础
  35. 4.1 并行处理
  36. 4.2 并行聚合
  37. 4.3 并行调用
  38. 4.4 动态并行
  39. 4.5 PLINQ
  40. 第5章 数据流基础
  41. 5.1 关联的块
  42. 5.2 传播错误
  43. 5.3 块的解耦
  44. 5.4 块的节流
  45. 5.5 块的并行处理
  46. 5.6 创建自定义块
  47. 第6章 System.Reactive基础
  48. 6.1 转换.NET事件
  49. 6.2 向上下文发送通知
  50. 6.3 使用窗口和缓冲来分组事件数据
  51. 6.4 通过节流和采样控制事件流
  52. 6.5 超时
  53. 第7章 测试
  54. 7.1 对async方法进行单元测试
  55. 7.2 对预期失败的async方法进行单元测试
  56. 7.3 对async void方法进行单元测试
  57. 7.4 对数据流网格进行单元测试
  58. 7.5 对System.Reactive可观察对象进行单元测试
  59. 7.6 通过伪造调度对System.Reactive可观察对象进行单元测试
  60. 第8章 互操作
  61. 8.1 异步包装“已完成”事件和异步方法
  62. 8.2 异步包装Begin方法和End方法
  63. 8.3 异步包装任意对象
  64. 8.4 异步包装并行代码
  65. 8.5 异步包装System.Reactive可观察对象
  66. 8.6 用于异步代码的System.Reactive可观察包装器
  67. 8.7 异步流与数据流网格
  68. 8.8 System.Reactive可观察对象和数据流网格
  69. 8.9 将System.Reactive可观察对象转换为异步流
  70. 第9章 集合
  71. 9.1 不可变的栈和队列
  72. 9.2 不可变列表
  73. 9.3 不可变set
  74. 9.4 不可变字典
  75. 9.5 线程安全的字典
  76. 9.6 阻塞队列
  77. 9.7 阻塞栈和阻塞背包
  78. 9.8 异步队列
  79. 9.9 节流队列
  80. 9.10 采样队列
  81. 9.11 异步栈和异步背包
  82. 9.12 阻塞异步队列
  83. 第10章 取消
  84. 10.1 发起取消请求
  85. 10.2 通过轮询来响应取消
  86. 10.3 因超时而取消
  87. 10.4 取消async代码
  88. 10.5 取消并行代码
  89. 10.6 取消System.Reactive代码
  90. 10.7 取消数据流网格
  91. 10.8 注入取消请求
  92. 10.9 与其他取消系统互操作
  93. 第11章 函数式面向对象编程
  94. 11.1 异步接口及继承
  95. 11.2 异步构造:工厂
  96. 11.3 异步构造:异步初始化模式
  97. 11.4 异步属性
  98. 11.5 异步事件
  99. 11.6 异步丢弃
  100. 第12章 同步
  101. 12.1 阻塞锁
  102. 12.2 异步锁
  103. 12.3 阻塞信号
  104. 12.4 异步信号
  105. 12.5 节流
  106. 第13章 调度
  107. 13.1 将工作调度到线程池
  108. 13.2 通过任务调度器执行代码
  109. 13.3 调度并行代码
  110. 13.4 使用调度器实现数据流同步
  111. 第14章 场景
  112. 14.1 初始化共享资源
  113. 14.2 System.Reactive延迟计算
  114. 14.3 异步数据绑定
  115. 14.4 隐式状态
  116. 14.5 相同的同步代码和异步代码
  117. 14.6 通过数据流网格实现轨道式编程
  118. 14.7 节流进度更新
  119. 附录A 旧版平台支持
  120. 附录B 识别和诠释异步模式
  121. 关于作者
  122. 关于封面
书名:C#并发编程经典实例(第2版)
作者:Stephen Cleary
译者:韩峰 译
国内出版社:人民邮电出版社
出版时间:2020年11月
页数:208
书号:978-7-115-55060-6
原版书书名:Concurrency in C# Cookbook
原版书出版商:O'Reilly Media
Stephen Cleary
 
Stephen Cleary C# MVP,知名软件开发人员,在C#、C++、JavaScript等方面均有丰富的经验。1998年起成为专业软件开发人员,涉猎广泛,从ARM固件到Azure样样精通。他从最初的Boost C++库开始就在为开源软件做贡献,并且发布了几个他自己的库和工具。Stephen喜欢演讲和写作,在其个人网站http://stephencleary.com/上,有大量受欢迎的博客文章以及开源库和应用。