CXJava高并发编程详解9787111657705pdf下载

CXJava高并发编程详解9787111657705百度网盘pdf下载

作者:
简介:CXJava高并发编程详解9787111657705
出版社:
出版时间:2020-07
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

  • 商品名:CXJava高并发编程详解9787111657705
  • ISBN:9787111657705
  • 定价:99
  • 出版社:机械工业出版社
  • 作者:汪文君

参考信息(以实物为准)

  • 出版时间:2020-07-01
  • 印刷时间:
  • 版次:1
  • 印次:
  • 包装:平装
  • 开本:16开
  • 用纸:胶版纸
  • 页数:398
  • 字数:

产品特色

编辑推荐

《Java高并发编程详解:多线程与架构设计》的姊妹篇!外企数据服务部技术专家撰写,分享多年Java服务器、大数据程序开发架构经验。


实战性强,从底层原理总结和归纳各个技术细节,结合真实的案例深入分析微基准测试、性能度量、Java高并发类库的原理及应用。


内容简介


本书由浅入深、循序渐进地介绍Java高并发核心库的精髓,帮助读者掌握相关内容的技术细节。

内容讲解以真实问题为导向,层层递进,环环紧扣,详细阐述每一个解决方案的来龙去脉。

通过大量的实际案例,原理剖析和实战代码相结合,让读者能够更加清晰深入地理解每一个技术细节的用法和实用技巧。

详细介绍Java微基准测试工具集JMH与平台级性能指标数据度量工具Metrics的使用方法,帮助读者快速开发出高效、健壮的并发应用程序。


本书共包含四大部分。

第①部分(□□章)详细介绍了JMH微基准测试工具的使用细节。该工具是由Oracle JVM开发团队相关成员开发的,开发者借助它能够了解自己编写的程序代码以及程序在运行期的精确性能表现。在本书的其他章节对API之间的性能进行对比时,主要也是依赖该工具,因此在学习本书的其他章节时,□好能够掌握该部分内容。强烈推荐开发者将JMH纳入自己日常的“兵器库”中,以便能够随时随地使用。

第②部分(第2~5章)主要围绕Java并发包展开,内容包括:Java的原子类型及其底层原理(第2章);Java的并发工具集(第3章),其中还穿插了Google Guava的部分内容;Java的并发容器(第4章),包括阻塞队列BlockingQueue和并发容器等内容;Java的ExecutorService(第5章),以及Future家族成员的详解。

第③部分(第6章)主要介绍自Java 8 引入的Stream,并且重点解释了具备高并发能力的并行流原理,以及如何自定义并行流等相关内容。

第④部分(第7章)深入讲解了Metrics。作为一个比较小巧的度量工具集,Metrics目前已经成为事实上的度量标准,在很多开源软件、框架和平台中都能看到对它的使用,比如Apache的Kafka、Spark、Storm、Spring Cloud等都是使用Metrics作为系统运行性能指标收集的手段。


前言序言

【为什么写这本书】

在我的□□本书《Java高并发编程详解:多线程与架构设计》出版之后,我随即开始了第二本书《Java高并发编程详解:深入理解并发核心库》的写作。这本书作为□□本书的延续,主要内容将围绕Java并发包的使用场景展开;同时还增加了JMH基准测试工具的内容(目前,□新的JDK版本中已经引入了该工具,并作为标准库之一发布);引入了Java 8 Stream的相关内容,尤其是还分析了与高并发相关的并行流;在本书的□后还介绍了性能度量工具Metrics(该类库目前已经成为业界实质上的度量标准,很多开源系统、商业软件中都会采用它)。

如果说我写作□□本书只是一次偶然性的尝试,那么这本书的写作则是一次必然性的使命,是对读者和出版社的一个交代与承诺。为了使得Java高并发编程的相关内容尽可能系统化和完善,必须完成对并发包的介绍。这里,我要向伟大的Doug Lea大师致敬,由于他孜孜不倦的努力、精益求精的敬业态度, Java程序员才能以较低的成本和相对安全的方式来处理非常复杂的高并发多线程场景。

本书中的所有内容都来源于我的网络视频课程。每一套课程推出后都在交流群中引起热烈讨论,我将这些讨论、学习者提出的疑惑以及自己对内容的重新思考全部融入本书中,以使本书中所涉及的知识点尽可能完善与成熟。

 

【读者对象】

●计算机相关专业的在校学生

●Java开发工程师

●从事Java系统架构的架构师

●使用Java作为开发语言的公司与组织

●开设Java课程的专业院校

●开设Java课程的培训机构

 

【如何阅读本书】

本书共7章,逻辑上可分为四部分。□□部分(□□章)详细介绍了JMH(Java Micro benchmark Harness)基准测试工具的使用细节。该工具是由Oracle JVM开发团队相关成员开发的,借助它,开发者将能足够了解自己所编写的程序代码,以及程序在运行期的精确性能表现。在本书的其他章节中,我们对API之间的性能进行对比时主要也是依赖于该工具,因此在学习本书的其他章节之前,□好能够先掌握该部分内容。笔者在此强烈推荐开发者将JMH纳入自己日常的“兵器库”中,以便随时随地使用。

第二部分(第2~5章)主要围绕Java并发包进行展开,内容包括:Java的原子类型及其底层原理(第2章);Java的并发工具集(第3章),其中还穿插了Google Guava的部分内容;Java的并发容器(第4章),包括阻塞队列BlockingQueue和并发容器等内容;Java的ExecutorService(第5章),以及Future家族成员的详解。

第三部分(第6章)主要介绍自Java 8 引入的Stream,并且重点解释了具备高并发能力的并行流原理,以及如何自定义并行流等相关内容。

第四部分(第7章)主要介绍Metrics这个比较小巧的度量工具集。目前Metrics已经成为事实上的度量标准,在很多开源软件、框架和平台中都能看到对它的使用,比如Apache的Kafka、Spark、Storm、Spring Cloud等都是使用Metrics作为系统运行性能指标收集的手段。


目录

●□□章 JMH  1

1.1 JMH简介  1

1.2 JMH快速入门  1

1.3 JMH的基本用法  6

1.4 编写正确的微基准测试以及高级用法  27

1.5 JMH的Profiler  45

1.6 本章总结  56

 

●第2章 Java并发包之原子类型详解  57

2.1 AtomicInteger详解  58

2.2 AtomicBoolean详解  69

2.3 AtomicLong详解  74

2.4 AtomicReference详解  76

2.5 AtomicStampedReference详解  86

2.6 AtomicArray详解  89

2.7 AtomicFieldUpdater详解  90

2.8 sun.misc.Unsafe详解  93

2.9 本章总结  100

 

●第3章 Java并发包之工具类详解   102

3.1 CountDownLatch工具详解  102

3.2 CyclicBarrier工具详解  107

3.3 Exchanger工具详解  116

3.4 Semaphore工具详解  124

3.5 Phaser工具详解  138

3.6 Lock&ReentrantLock详解  150

3.7 ReadWriteLock&ReentrantRead-WriteLock详解  165

3.8 Condition详解  171

3.9 StampedLock详解  181

3.10 Guava之Monitor详解  192

3.11 Guava之RateLimiter详解  194

3.12 本章总结  204

 

●第4章 Java并发包之并发容器详解  205

4.1 链表  206

4.2 BlockingQueue(阻塞队列)  221

4.3 ConcurrentQueue(并发队列)  237

4.4 ConcurrentMap(并发映射)  245

4.5 写时拷贝算法(Copy On Write)  248

4.5.3 CopyOnWrite总结  250

4.6 高并发无锁(Lock Free)数据结构的实现  250

4.7 本章总结  255

 

●第5章 Java并发包之ExecutorService详解  256

5.1 Executor&ExecutorService详解  256

5.2 Future和Callback  277

5.3 ForkJoinPool 详解  284

5.4 CompletionService详解  289

5.5 CompletableFuture详解  294

5.6 本章总结  301

 

●第6章 Java Streams详解  302

6.1 Stream介绍及其基本操作  302

6.2 Collector在Stream中的使用  320

6.3 Parallel Stream详解  337

6.4 本章总结  344

 

●第7章 Metrics(Powerful Toolkit For Measure)  345

7.1 Metrics快速入门  345

7.2 五大Metric详解  346

7.3 Reporter详解  372

7.4 Metrics Plugins  380

7.5 深入Metrics源码  387

7.5.3 拾遗补漏  394

7.6 本章总结  396

作者简介

汪文君

某外企数据服务中心技术经理、技术专家,目前专注于实时数据data pipeline平台的构建与架构,以及部门内部DevOps的建设。对团队管理、项目管理有着自己独到的见解。在加入该公司之前曾拥有多年的移动网关通信研发经验,以及移动互联网、云计算、B2C电子商务平台等架构的开发经验。热衷于技术分享,善于锤炼技术细节,目前已录制20余套技术视频,在互联网上得到广泛传播。另著有《Java高并发编程详解:多线程与架构设计》,该书被机械工业出版社华章公司评选为2018年度十佳图书之一。


精彩书评

【推荐序一】

恭喜汪文君老师又写新书了。

强烈推荐所有以成为Java高手、架构师为目标的读者阅读本书。本书深入讲述了Java高并发编程的相关内容,覆盖面广而全,可以将其看作Java高并发编程的一本百科全书。Java高并发编程是Java编程比较高阶的部分,讲述这部分内容的书不多,这本书的出版可以看作一个里程碑。

在知识体系方面,本书既有广度又有深度。在广度方面,本书覆盖了Java高并发编程的语法、高级用法与Profiler、类型详解、开发工具、高并发的数据机构及原理、实践编程的详细用法、框架的用法,以及典型场景下的应用案例。在深度方面,本书不仅对基于Java高并发编程的所有类的说明、用法与经典案例都进行了详尽的论述,而且对Java在这方面的发展与应用给出了深入浅出的解释。

随着近几年云原生、容器化、分布式计算的逐渐发展和普及,以及微服务架构的演进与兴起,Java高并发编程在设计与编程中的地位越来越重要。Java高并发编程已经成为架构师、资深编程人员进行分布式协作设计、服务设计、模块开发所必需的基本功,也是理解、使用、优化Web容器、JEE容器、云原生基础设施组件所不可或缺的基本技能。

在本书中,大家不仅能够学到深度、专业的编程知识,还能感受到汪文君老师专注地提高编程技能的态度,始终如一地贡献、分享Java专业知识与经验的精神,以及持续学习、持续成长的进取精神。在这些方面,他同样是我学习的楷模。

我们在学习书中的内容时,一定要动手编码,实践书中的知识。理论上,成为专业人员要经历四个阶段:无意识无能、有意识无能、有意识能力、无意识能力。通过不断学习、持续地实践和编程,□终将编程能力内化为个人的无意识能力。让我们的专业之路从这本书开始吧!

 

东软集团移动互联网事业部首席技术官 徐景辉

 

 

【推荐序二】

首先,我很荣幸可以再次受到邀请为Alex的新作写推荐序,Alex的第二本书《Java高并发编程详解:深入理解并发核心库》是一本内容非常全面的参考图书,该书可以帮助你充分了解和使用JVM生态圈中□重要的技术内容之一——Java并发核心库。

本书比较全面地探讨了并发核心库的各个方面,从基准测试JMH开始,到原子类型、并发工具、并发容器、ExecutorService、Java 8 Stream知识,以及□后的性能度量工具库Metrics,每一个细节的概念、使用方法、适合的应用场合、应避免使用的场合书中都进行了详细解释,并且都配备了非常详细的实例,可以帮助读者快速建立对其的理解和认识。

对于想学习Java并发编程的人或有一定经验的开发人员来说,如果他们希望有什么资料能在以后的工作中为自己提供专业的参考,那么我强烈推荐这本书。

 

OSL公司首席技术官 Andrew Davidson

 

 

【推荐序三】

以我从事云计算平台研发架构及咨询近10年的经验来看,弹性云,以及服务组件免费、资源付费的模式将是一个成熟的模式,而这就要求开发人员在节省资源的前提下能够开发出高性能的应用程序,合理充分地利用软硬件的资源,并且以廉价的成本为企业创造高性能的服务产品。这看起来似乎很难,没错!这确实不太容易。想象一下,我们基于AWS lambda架构设计开发的Serverless程序,在同等CPU、内存等其他服务调用的情况下,如果程序员能够开发并受理更多的业务量、提供更多的并发量,势必会更多地受到老板的喜爱和公司的重视。

这一观点同样也适用于现在越来越多的基于物联网的硬件设备。一般情况下,基于物联网的硬件终端,其软硬件配置短时间内很难达到普通PC甚至用于生产环境的服务器的水平,那么在有限的资源上开发出响应速度快、运算能力强的计算程序就显得尤为重要了。

本书中所讲述的内容给出了部分解决之道,Alex非常详细地介绍了Java并发包中的并发知识及技术细节,通过对它们的学习与应用,相信普通的开发者也可以开发出高性能、高吞吐量的应用程序。

Alex是一个非常有耐心的人,本书内容的系统化组织、知识点的细致讲述深深地吸引了我,本书的完成将是非常耗费时间的一次写作之旅,我很佩服他对基准测试的深刻认识以及对原子类型的完美解读。

作为一个Java程序员,哦不,作为一个基于JVM语言开发程序的工程师,我强烈推荐此书作为你的参考书籍。

 

EY安永金融服务咨询部云总监 Srimanth Rudraraju

 

 

【推荐序四】

 “开发正确的程序是比较难的,开发正确的高并发多线程应用则更是难上加难。”我已经记不清这句话出自何处,但是我完全认同这句话所表达的观点。

我已经有20多年的软件开发经验,并且现在仍然乐于此道。正如Alex一样,我也喜欢琢磨和分析每一次软件开发过程中遇到的细节,这也是为什么我们彼此在仅有的几次社区探讨之后,就经常保持沟通与联络,我欣赏他愿意为了所从事的事业投入大量的热情和时间的精神。

让我们重新回到关于本书的话题中来。本书内容涵盖非常广泛,系统性地且有条理地讲述了Java并发包中的每一个常用工具及类。这些类与工具是全体Java从业人员多年的宝贵积累和产物,是通过无数次的探讨和实践总结归纳出的□佳实践。Alex将它们悉数详细解释给读者,这是一件非常了不起的事情,他一定也为此牺牲了很多陪伴家人的时间。

开发正确的高并发多线程程序是极为困难的,不过不用担心,学习并且使用优秀的并发库就可以帮我们屏蔽这些令人担忧的问题,这也是本书的价值所在。

希望该书的读者在阅读和学习之后能有一定的收获。

 

软件架构师、Apache软件基金会成员、开源软件Tomcat PMC成员 Igal