作品简介

本书全面讲解C#并发编程技术,侧重于.NET平台上较新、较实用的方法。全书分为几大部分:首先介绍几种并发编程技术,包括异步编程、并行编程、TPL数据流、响应式编程;然后阐述一些重要的知识点,包括测试技巧、互操作、取消并发、函数式编程与OOP、同步、调度;最后介绍了几个实用技巧。全书共包含70多个有配套源码的实用方法,可用于服务器程序、桌面程序和移动应用的开发。

Stephen Cleary(作者),C# MVP,知名软件开发人员,在C#、C++、JavaScript等方面均有丰富的经验。1998年起成为专业软件开发人员,涉猎广泛,从ARM固件到Azure样样精通。他从最初的Boost C++库开始就在为开源软件做贡献,并且发布了几个他自己的库和工具。Stephen喜欢演讲和写作,在其个人网站http://stephencleary.com/上,有大量受欢迎的博客文章以及开源库和应用。

相银初(译者),1996年毕业于复旦大学,长期从事软件开发和项目管理工作,涉及C++、C#、Oracle、Linux等技术,也从事软件类图书的翻译工作。

作品目录

  • O'Reilly Media, Inc.介绍
  • 业界评论
  • 译者序
  • 关于并发编程的几个误解
  • 误解一:并发就是多线程
  • 误解二:只有大型服务器程序才需要考虑并发
  • 误解三:并发编程很复杂,必须掌握很多底层技术
  • 本书的特色
  • 翻译中的一点感受
  • 感谢
  • 前言
  • 本书读者对象
  • 本书写作初衷
  • 内容速览
  • 网上资料
  • 排版规范
  • Safari(^{®}) Books Online
  • 联系我们
  • 致谢
  • 第 1 章 并发编程概述
  • 1.1 并发编程简介
  • 1.2 异步编程简介
  • 1.3 并行编程简介
  • 1.4 响应式编程简介
  • 1.5 数据流简介
  • 1.6 多线程编程简介
  • 1.7 并发编程的集合
  • 1.8 现代设计
  • 1.9 技术要点总结
  • 第 2 章 异步编程基础
  • 2.1 暂停一段时间
  • 2.2 返回完成的任务
  • 2.3 报告进度
  • 2.4 等待一组任务完成
  • 2.5 等待任意一个任务完成
  • 2.6 任务完成时的处理
  • 2.7 避免上下文延续
  • 2.8 处理 async Task 方法的异常
  • 2.9 处理 async void 方法的异常
  • 第 3 章 并行开发的基础
  • 3.1 数据的并行处理
  • 3.2 并行聚合
  • 3.3 并行调用
  • 3.4 动态并行
  • 3.5 并行LINQ
  • 第 4 章 数据流基础
  • 4.1 链接数据流块
  • 4.2 传递出错信息
  • 4.3 断开链接
  • 4.4 限制流量
  • 4.5 数据流块的并行处理
  • 4.6 创建自定义数据流块
  • 第 5 章 Rx基础
  • 5.1 转换.NET事件
  • 5.2 发通知给上下文
  • 5.3 用窗口和缓冲对事件分组
  • 5.4 用限流和抽样抑制事件流
  • 5.5 超时
  • 第 6 章 测试技巧
  • 6.1  async 方法的单元测试
  • 6.2 预计失败的 async 方法的单元测试
  • 6.3  async void 方法的单元测试
  • 6.4 数据流网格的单元测试
  • 6.5 Rx Observable对象的单元测试
  • 6.6 用虚拟时间测试Rx Observable对象
  • 第 7 章 互操作
  • 7.1 用async代码封装Async方法与Completed事件
  • 7.2 用 async 代码封装 Begin/End 方法
  • 7.3 用 async 代码封装所有异步操作
  • 7.4 用 async 代码封装并行代码
  • 7.5 用 async 代码封装Rx Observable对象
  • 7.6 用Rx Observable对象封装 async 代码
  • 7.7 Rx Observable对象和数据流网格
  • 第 8 章 集合
  • 8.1 不可变栈和队列
  • 8.2 不可变列表
  • 8.3 不可变Set集合
  • 8.4 不可变字典
  • 8.5 线程安全字典
  • 8.6 阻塞队列
  • 8.7 阻塞栈和包
  • 8.8 异步队列
  • 8.9 异步栈和包
  • 8.10 阻塞/异步队列
  • 第 9 章 取消
  • 9.1 发出取消请求
  • 9.2 通过轮询响应取消请求
  • 9.3 超时后取消
  • 9.4 取消 async 代码
  • 9.5 取消并行代码
  • 9.6 取消响应式代码
  • 9.7 取消数据流网格
  • 9.8 注入取消请求
  • 9.9 与其他取消体系的互操作
  • 第 10 章 函数式OOP
  • 10.1 异步接口和继承
  • 10.2 异步构造:工厂
  • 10.3 异步构造:异步初始化模式
  • 10.4 异步属性
  • 10.5 异步事件
  • 10.6 异步销毁
  • 第 11 章 同步
  • 11.1 阻塞锁
  • 11.2 异步锁
  • 11.3 阻塞信号
  • 11.4 异步信号
  • 11.5 限流
  • 第 12 章 调度
  • 12.1 调度到线程池
  • 12.2 任务调度器
  • 12.3 调度并行代码
  • 12.4 用调度器实现数据流的同步
  • 第 13 章 实用技巧
  • 13.1 初始化共享资源
  • 13.2 Rx延迟求值
  • 13.3 异步数据绑定
  • 13.4 隐式状态
  • 封面介绍
展开全部