C#并发编程经典实例

克利里 (Stephen Cleary)

出版时间

2014-12-31

ISBN

9787115374271

评分

★★★★★

标签

计算机

书籍介绍
这是一本能帮你在“到底该用哪个”之间做出判断的并发编程书。市面上讲并发的书不少,但多数停留在API手册层面——告诉你怎么调,却不解释为什么。这本书的难得之处在于它反复追问场景:并行与异步究竟有何区别?数据流和事件流该如何取舍?lock到底够不够用?异步是否必然对应多线程?正是这些真实困扰开发者的困惑,构成了全书的主线。它聚焦.NET平台现有API,不刻意深入底层原理,因此读起来轻、上手快,适合作案头工具书随查随用。但正因“点到为止”,若你期待系统性的理论推演,可能会觉得深度不足。它更适合已经踩过并发坑、想快速理清各技术优劣与适用边界的工程师。
作者简介
Stephen Cleary C# MVP,知名软件开发人员,在C#、C++、JavaScript等方面均有丰富的经验。1998年起成为专业软件开发人员,涉猎广泛,从ARM固件到Azure样样精通。他从最初的Boost C++库开始就在为开源软件做贡献,并且发布了几个他自己的库和工具。Stephen喜欢演讲和写作,在其个人网站http://stephencleary.com/上,有大量受欢迎的博客文章以及开源库和应用。 译者简介: 相银初 1996年毕业于复旦大学,长期从事软件开发和项目管理工作,涉及C++、C#、Oracle、Linux等技术,也从事软件类图书的翻译工作。
AI导读
核心看点
  • 涵盖异步、并行、数据流及响应式编程四大核心技术
  • 提供70多个带源码的实用并发编程解决方案
  • 深入讲解测试技巧、取消操作及上下文同步机制
读者共识
  • 填补了C#并发编程领域的市场空白,入门指引佳
  • 概念讲解清晰,但示例偏简单,缺乏大型项目实战
  • 针对性强,专注于.NET平台API,实用价值高
精彩摘录
  • "最常见的情况是,用await语句等待一个任务完成,当该方法在await处暂停时,就可以 捕捉上下文(context) 。如果当前SynchronizationContext不为空,这个上下文就是当前 SynchronizationContext。如果当前SynchronizationContext为空,则这个上下文为当前 TaskScheduler。该方法会在这个上下文中继续运行。一般来说,运行 UI 线程时采用 UI 上 下文,处理 ASP.NET 请求时采用 ASP.NET 请求上下文,其他很多情况下则采用线程池上 下文。"
  • "有两种基本的方法可以创建Task实例。有些任务表示 CPU 需要实际执行的指令,创建 这种计算类的任务时,使用Task.Run(如需要按照特定的计划运行,则用TaskFactory. StartNew) 。其他的任务表示一个通知(notification) ,创建这种基于事件的任务时,使用 TaskCompletionSource<T>。大部分 I/O 型任务采用TaskCompletionSource<T>。"
  • "Consuming an asynchronous operation is done via await, and consuming an enumerable is usually done via foreach. Consuming an asynchronous enumerable is done by combining these two into await foreach."
目录
译者序  IX
前言  XI
第1 章 并发编程概述  1
1.1 并发编程简介  1
1.2 异步编程简介  3

显示全部
用户评论
想弄清楚并发的使用场景技术手段实现优劣看这本书就对了。并行和异步有什么区别,数据流事件流怎么处理,为什么需要锁,lock够用吗,异步一定多线程吗,Thread和backgroundworker还流行吗等等,讲的很透彻。
挺好的。。 但是都点到为止
RX Extension ,从原来仅仅只知道 TAP 到 多种 并发模式。。
一些api的使用,都是简单的示例,没有项目使用的介绍。
很好的入门书,各方面都介绍了,关键几个概念讲的非常清楚。
翻译垃圾。不知所云。原作也讲得含糊不清
适合作为工具书
并行、异步,Rx、数据流......诸多常见的并发编程场景都被提到了。而且专注于使用.NET平台的API进行讲解,没有过多的深入底层,针对性很强。大部分的例子所使用的库都在.NET Core中包含进去了。是一本用来专注解决问题的技术书籍
下载
收藏