基本信息

编辑推荐
《Java高并发编程详解:多线程与架构设计》姊妹篇!外企数据服务部技术专家撰写,分享多年Java服务器、大数据程序开发架构经验
实战性强,从底层原理总结和归纳各个技术细节,结合真实的案例深入分析微基准测试、性能度量、Java高并发类库的原理及应用
内容简介
计算机书籍
本书共包含四大部分,其中,第一部分(第1章)详细介绍了JMH(Java Micro benchmark Harness)基准测试工具的使用细节。该工具是由Oracle JVM开发团队相关成员开发的,借助它,开发者将能足够了解自己所编写的程序代码,以及程序在运行期的精确性能表现。在本书的其他章节对API之间的性能进行对比时,主要也是依赖于该工具,因此在学习本书的其他章节时,最好能够掌握该部分内容,强烈推荐开发者将JMH纳入自己日常的“兵器库”中,以便能够随时随地进行利用。
第二部分主要围绕Java并发包进行展开,涉及的内容包括Java的原子类型及其底层原理(第2章);Java的并发工具集(第3章),其中还穿插了Google Guava的部分内容;Java的并发容器(第4章),包括阻塞队列BlockingQueue和并发容器等内容;Java的ExecutorService(第5章),以及Future家族成员的详解。
第三部分(第6章),主要介绍自Java 8 引入的Stream,并且重点解释了具备高并发能力的并行流原理,以及如何自定义并行流等相关内容。
第四部分(第7章),深入讲解Metrics,它作为一个比较小巧的度量工具集,目前已经成为事实上的度量标准,在很多开源软件、框架和平台中都能看到对它的使用,比如Apache的Kafka、Spark、Storm、Spring Cloud等都是使用Metrics作为系统运行性能指标收集的手段。
目录
推荐序二
推荐序三
推荐序四
前 言
第1章 JMH 1
1.1 JMH简介 1
1.2 JMH快速入门 1
1.2.1 用main方法进行测试 1
1.2.2 用JMH进行微基准测试 3
1.3 JMH的基本用法 6
1.3.1 @Benchmark标记基准测试方法 7
1.3.2 Warmup以及Measurement 8
1.3.3 四大BenchmarkMode 10
1.3.4 OutputTimeUnit 14
1.3.5 三大State的使用 14
1.3.6 @Param的妙用 19
1.3.7 JMH的测试套件(Fixture) 23
1.3.8 CompilerControl 26
1.4 编写正确的微基准测试以及高级用法 27
前言
在我的第一本书《Java高并发编程详解:多线程与架构设计》出版之后,我随即开始了第二本书《Java高并发编程详解:深入理解并发核心库》的写作。这本书作为第一本书的延续,主要内容将围绕Java并发包的使用场景展开;同时还增加了JMH基准测试工具的内容(目前,最新的JDK版本中已经引入了该工具,并作为标准库之一发布);引入了Java 8 Stream的相关内容,尤其是还分析了与高并发相关的并行流;在本书的最后还介绍了性能度量工具Metrics(该类库目前已经成为业界实质上的度量标准,很多开源系统、商业软件中都会采用它)。
如果说我写作第一本书只是一次偶然性的尝试,那么这本书的写作则是一次必然性的使命,是对读者和出版社的一个交代与承诺。为了使得Java高并发编程的相关内容尽可能系统化和完善,必须完成对并发包的介绍。这里,我要向伟大的Doug Lea大师致敬,由于他孜孜不倦的努力、精益求精的敬业态度, Java程序员才能以较低的成本和相对安全的方式来处理非常复杂的高并发多线程场景。
本书中的所有内容都来源于我的网络视频课程。每一套课程推出后都在交流群中引起热烈讨论,我将这些讨论、学习者提出的疑惑以及自己对内容的重新思考全部融入本书中,以使本书中所涉及的知识点尽可能完善与成熟。
读者对象
计算机相关专业的在校学生
Java开发工程师
从事Java系统架构的架构师
使用Java作为开发语言的公司与组织
开设Java课程的专业院校
开设Java课程的培训机构
如何阅读本书
本书共7章,逻辑上可分为四部分。第一部分(第1章)详细介绍了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作为系统运行性能指标收集的手段。
勘误和支持
由于作者的水平有限,写作时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你在阅读的过程中发现有任何问题,都欢迎将宝贵的意见发送到我的个人邮箱532500648@qq.com。我真挚地期待着你的建议和反馈,由于个人时间有限,在反馈较多的情况下,如果不能第一时间回复你的邮件还望海涵。
致谢
首先,我要感谢我的父亲,即使我早已成年,但在父亲的心里我仍是个孩子,隔三差五地提醒我注意休息,按时吃饭,我每到一个新城市,他都会关注这个城市的天气预报。作为一个七十多岁的老人,自从得知我炒股之后,他甚至开始关注股市的涨跌,生怕大盘不好时我会想不开,真是可怜天下父母心。人到中年回到家中,可以痛痛快快地喊一声“爸”,这已经是老天对我最大的善意了。
媒体评论
由浅入深、循序渐进地介绍Java高并发核心库的精髓,帮助读者掌握相关内容的技术细节。
内容讲解以真实问题为导向,层层递进,环环紧扣,详细阐述每一个解决方案的来龙去脉。
大量的实际案例,原理剖析和实战代码相结合,让读者能够更加清晰深入地理解每一个技术细节的用法和实用技巧。
详细介绍Java微基准测试工具集JMH与平台级性能指标数据度量工具Metrics的使用方法,帮助读者快速开发出高效、健壮的并发应用程序。