C#并发编程经典实例
Stephen Cleary
相银初 译
出版时间:2014年12月
页数:170
“涵盖各种并发编程技术,本书体例必然成就其为现代.NET并发技术的理想参考书。”
——Jon Skeet,谷歌高级软件开发工程师,
StackOverflow排名第一的杰出程序员,著有《深入理解C#》
“让普通人利用大规模并行能力是计算领域的一大趋势。与以前相比,开发人员已经能更好地掌握并发技术,但要把并发讲清楚对很多人仍然是一项巨大的挑战。Stephen专注于这个领域,通过这本易读、完整的参考手册,帮助我们更好地理解并发、线程、反应式编程模型、并行等主题。”
——Scott Hanselman,微软ASP.NET及Azure Web Tools首席项目经理

并发编程在响应式和可扩展的应用开发中得到了日益广泛的应用。但并发编程的难度曾经非常大,令众多开发人员望而却步。今天,很多更高层抽象的现代程序库的出现,大大降低了并发编程的难度。本书使用.NET 4.5和C# 5.0中的语言特性,展示并行处理和异步编程技术。
本书既是一本入门指导书,也是一本快捷参考书,它示例丰富、结构独特,70多个源代码示例,完整的“问题-解决方案-讨论”模式,逐渐深入又自成一体。你可以循序渐进地学习本书内容,也可以直接查阅对应的示例,迅速解决手头的问题。

本书主要内容:
· 面向异步编程的async和await
· 使用TPL(任务并行库)
· 创建数据流管道的TPL Dataflow库
· 基于LINQ的Reactive Extensions
· 为并发代码编写单元测试
· 并发方法之间的互操作
· 不可变、线程安全和生产者/消费者集合
· 并发代码中的取消功能支持
· 支持异步的面向对象编程
· 线程同步访问数据
  1. 译者序
  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. 第3章 并行开发的基础
  24. 3.1 数据的并行处理
  25. 3.2 并行聚合
  26. 3.3 并行调用
  27. 3.4 动态并行
  28. 3.5 并行LINQ 
  29. 第4章 数据流基础
  30. 4.1 链接数据流块
  31. 4.2 传递出错信息
  32. 4.3 断开链接
  33. 4.4 限制流量
  34. 4.5 数据流块的并行处理
  35. 4.6 创建自定义数据流块
  36. 第5章 Rx基础
  37. 5.1 转换.NET事件
  38. 5.2 发通知给上下文
  39. 5.3 用窗口和缓冲对事件分组
  40. 5.4 用限流和抽样抑制事件流
  41. 5.5 超时  
  42. 第6章 测试技巧
  43. 6.1 async方法的单元测试
  44. 6.2 预计失败的async方法的单元测试  
  45. 6.3 async void方法的单元测试
  46. 6.4 数据流网格的单元测试
  47. 6.5 Rx Observable对象的单元测试
  48. 6.6 用虚拟时间测试Rx Observable对象
  49. 第7章 互操作
  50. 7.1 用async代码封装Async方法与Completed事件
  51. 7.2 用async代码封装Begin/End方法  
  52. 7.3 用async代码封装所有异步操作
  53. 7.4 用async代码封装并行代码
  54. 7.5 用async代码封装Rx Observable对象
  55. 7.6 用Rx Observable对象封装async代码
  56. 7.7 Rx Observable对象和数据流网格  
  57. 第8章 集合
  58. 8.1 不可变栈和队列
  59. 8.2 不可变列表
  60. 8.3 不可变Set集合
  61. 8.4 不可变字典
  62. 8.5 线程安全字典
  63. 8.6 阻塞队列
  64. 8.7 阻塞栈和包
  65. 8.8 异步队列
  66. 8.9 异步栈和包
  67. 8.10 阻塞/异步队列
  68. 第9章 取消
  69. 9.1 发出取消请求
  70. 9.2 通过轮询响应取消请求
  71. 9.3 超时后取消
  72. 9.4 取消async代码
  73. 9.5 取消并行代码
  74. 9.6 取消响应式代码
  75. 9.7 取消数据流网格
  76. 9.8 注入取消请求
  77. 9.9 与其他取消体系的互操作
  78. 第10章 函数式OOP  
  79. 10.1 异步接口和继承
  80. 10.2 异步构造:工厂
  81. 10.3 异步构造:异步初始化模式
  82. 10.4 异步属性
  83. 10.5 异步事件
  84. 10.6 异步销毁
  85. 第11章 同步
  86. 11.1 阻塞锁
  87. 11.2 异步锁
  88. 11.3 阻塞信号
  89. 11.4 异步信号
  90. 11.5 限流
  91. 第12章 调度
  92. 12.1 调度到线程池
  93. 12.2 任务调度器
  94. 12.3 调度并行代码
  95. 12.4 用调度器实现数据流的同步
  96. 第13章 实用技巧
  97. 13.1 初始化共享资源
  98. 13.2 Rx延迟求值
  99. 13.3 异步数据绑定
  100. 13.4 隐式状态
  101. 封面介绍
书名:C#并发编程经典实例
作者:Stephen Cleary
译者:相银初 译
国内出版社:人民邮电出版社
出版时间:2014年12月
页数:170
书号:978-7-115-37427-1
原版书书名: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/上,有大量受欢迎的博客文章以及开源库和应用。