万本电子书0元读

万本电子书0元读

顶部广告

Java高并发编程详解:深入理解并发核心库电子书

《Java高并发编程详解:多线程与架构设计》的姊妹篇!外企数据服务部技术专家撰写,分享多年Java服务器、大数据程序发架构经验。 实战性强,从底层原理总结和归纳各个技术细节,结合真实的案例深分析微基准测试、性能度量、Java高并发类库的原理及应用。

售       价:¥

纸质售价:¥54.40购买纸书

34人正在读 | 0人评论 6.5

作       者:汪文君

出  版  社:机械工业出版社

出版时间:2020-06-01

字       数:48.2万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
由浅深、循序渐地介绍Java高并发核心库的精髓,帮助读者掌握相关内容的技术细节。 内容讲解以真实问题为导向,层层递,环环紧扣,详细阐述每一个解决方案的来龙去脉。 大量的实际案例,原理剖析和实战代码相结合,让读者能够更加清晰深地理解每一个技术细节的用法和实用技巧。 详细介绍Java微基准测试工具集JMH与平台级性能指标数据度量工具Metrics的使用方法,帮助读者快速发出高效、健壮的并发应用程序。 本书共包含四大部分。 第①部分(第1章)详细介绍了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作为系统运行性能指标收集的手段。<br/>【推荐语】<br/>《Java高并发编程详解:多线程与架构设计》的姊妹篇!外企数据服务部技术专家撰写,分享多年Java服务器、大数据程序发架构经验。 实战性强,从底层原理总结和归纳各个技术细节,结合真实的案例深分析微基准测试、性能度量、Java高并发类库的原理及应用。<br/>【作者】<br/>汪文君 某外企数据服务中心技术经理、技术专家,目前专注于实时数据data pipeline平台的构建与架构,以及部门内部DevOps的建设。对团队管理、项目管理有着自己独到的见解。在加该公司之前曾拥有多年的移动网关通信研发经验,以及移动互联网、云计算、B2C电子商务平台等架构的发经验。热衷于技术分享,善于锤炼技术细节,目前已录制20余套技术视频,在互联网上得到广泛传播。另著有《Java高并发编程详解:多线程与架构设计》,该书被机械工业出版社华章公司评选为2018年度十佳图书之一。<br/>
目录展开

推荐序一

推荐序二

推荐序三

推荐序四

前言

第1章 JMH

1.1 JMH简介

1.2 JMH快速入门

1.2.1 用main方法进行测试

1.2.2 用JMH进行微基准测试

1.3 JMH的基本用法

1.3.1 @Benchmark标记基准测试方法

1.3.2 Warmup以及Measurement

1.3.3 四大BenchmarkMode

1.3.4 OutputTimeUnit

1.3.5 三大State的使用

1.3.6 @Param的妙用

1.3.7 JMH的测试套件(Fixture)

1.3.8 CompilerControl

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

1.4.1 编写正确的微基准测试用例

1.4.2 一些高级的用法

1.5 JMH的Profiler

1.5.1 StackProfiler

1.5.2 GcProfiler

1.5.3 ClassLoaderProfiler

1.5.4 CompilerProfiler

1.6 本章总结

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

2.1 AtomicInteger详解

2.1.1 性能测试对比

2.1.2 AtomicInteger的基本用法

2.1.3 AtomicInteger内幕

2.1.4 AtomicInteger总结

2.2 AtomicBoolean详解

2.2.1 AtomicBoolean的基本用法

2.2.2 AtomicBoolean内幕

2.2.3 Try Lock显式锁的实现

2.2.4 AtomicBoolean总结

2.3 AtomicLong详解

2.4 AtomicReference详解

2.4.1 AtomicReference的应用场景

2.4.2 AtomicReference的基本用法

2.4.3 AtomicReference的内幕

2.4.4 AtomicReference总结

2.5 AtomicStampedReference详解

2.5.1 CAS算法ABA问题

2.5.2 AtomicStampedReference详解

2.5.3 AtomicStampedReference总结

2.6 AtomicArray详解

2.7 AtomicFieldUpdater详解

2.7.1 原子性更新对象属性

2.7.2 注意事项

2.7.3 AtomicFieldUpdater总结

2.8 sun.misc.Unsafe详解

2.8.1 如何获取Unsafe

2.8.2 JNI、Java和C/C++混合编程

2.8.3 危险的Unsafe

2.8.4 sun.misc.Unsafe总结

2.9 本章总结

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

3.1 CountDownLatch工具详解

3.1.1 等待所有子任务结束

3.1.2 CountDownLatch的其他方法及总结

3.2 CyclicBarrier工具详解

3.2.1 等待所有子任务结束

3.2.2 CyclicBarrier的循环特性

3.2.3 CyclicBarrier的其他方法以及总结

3.2.4 CyclicBarrier VS. CountDownLatch

3.3 Exchanger工具详解

3.3.1 一对线程间的数据交换

3.3.2 Exchanger的方法详解

3.3.3 Exchanger总结

3.4 Semaphore工具详解

3.4.1 Semaphore限制同时在线的用户数量

3.4.2 使用Semaphore定义try lock

3.4.3 Semaphore其他方法详解

3.4.4 扩展Semaphore增强release

3.4.5 Semaphore总结

3.5 Phaser工具详解

3.5.1 Phaser的基本用法

3.5.2 Phase(阶段)以及Phaser方法详解

3.5.3 Phaser层级关系

3.5.4 Phaser总结

3.6 Lock&ReentrantLock详解

3.6.1 Lock及ReentrantLock方法详解

3.6.2 正确使用显式锁Lock

3.6.3 ReentrantLock VS. Synchronized关键字

3.6.4 显式锁Lock总结

3.7 ReadWriteLock&ReentrantReadWriteLock详解

3.7.1 读写锁的基本使用方法

3.7.2 读写锁的方法

3.7.3 基准测试性能对比

3.7.4 读写锁总结

3.8 Condition详解

3.8.1 初识Condition

3.8.2 Condition接口方法详解

3.8.3 使用Condition之生产者消费者

3.8.4 Condition总结

3.9 StampedLock详解

3.9.1 读写锁的饥饿写问题

3.9.2 StampedLock的使用

3.9.3 与其他锁的性能对比

3.9.4 StampedLock总结

3.10 Guava之Monitor详解

3.10.1 Monitor及Guard

3.10.2 Monitor的其他方法

3.10.3 Monitor总结

3.11 Guava之RateLimiter详解

3.11.1 RateLimiter的基本使用

3.11.2 RateLimiter的限流操作——漏桶算法

3.11.3 令牌环桶算法

3.11.4 RateLimiter总结

3.12 本章总结

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

4.1 链表

4.1.1 基本的链表

4.1.2 优先级链表

4.1.3 跳表(SkipList)

4.1.4 链表总结

4.2 BlockingQueue(阻塞队列)

4.2.1 ArrayBlockingQueue

4.2.2 PriorityBlockingQueue

4.2.3 LinkedBlockingQueue

4.2.4 DelayQueue

4.2.5 SynchronousQueue

4.2.6 LinkedBlockingDeque

4.2.7 LinkedTransferQueue

4.2.8 BlockingQueue总结

4.3 ConcurrentQueue(并发队列)

4.3.1 并发队列的性能

4.3.2 并发队列在使用中需要注意的问题

4.3.3 并发队列总结

4.4 ConcurrentMap(并发映射)

4.4.1 ConcurrentHashMap简介

4.4.2 ConcurrentSkipListMap简介

4.4.3 并发映射总结

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

4.5.1 CopyOnWrite读实现操作分析

4.5.2 CopyOnWrite写实现操作分析

4.5.3 CopyOnWrite总结

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

4.6.1 高并发无锁链表的实现

4.6.2 Lock Free数据结构的测试

4.6.3 本节总结

4.7 本章总结

第5章 Java并发包之ExecutorService详解

5.1 Executor&ExecutorService详解

5.1.1 ThreadPoolExecutor详解

5.1.2 ScheduledExecutorService详解

5.1.3 关闭ExecutorService

5.1.4 Executors详解

5.1.5 ExecutorService总结

5.2 Future和Callback

5.2.1 Future详解

5.2.2 ExecutorService与Future

5.2.3 Future的不足之处

5.2.4 Google Guava的Future

5.2.5 Future总结

5.3 ForkJoinPool详解

5.3.1 Fork/Join Framework介绍

5.3.2 ForkJoinTask详解

5.3.3 ForkJoinPool总结

5.4 CompletionService详解

5.4.1 ExecutorService执行批量任务的缺陷

5.4.2 CompletionService详解

5.4.3 CompletionService总结

5.5 CompletableFuture详解

5.5.1 CompletableFuture的基本用法

5.5.2 任务的异步运行

5.5.3 异步任务链

5.5.4 合并多个Future

5.5.5 多Future的并行计算

5.5.6 错误处理

5.5.7 JDK 9对CompletableFuture的进一步支持

5.5.8 CompletableFuture总结

5.6 本章总结

第6章 Java Streams详解

6.1 Stream介绍及其基本操作

6.1.1 如何创建Stream

6.1.2 Stream之Intermediate操作

6.1.3 Stream之Terminal操作

6.1.4 NumericStream详解

6.1.5 Stream总结

6.2 Collector在Stream中的使用

6.2.1 初识Collector

6.2.2 Collectors用法详解

6.2.3 自定义Collector

6.2.4 Collector总结

6.3 Parallel Stream详解

6.3.1 并行流Parallel Stream

6.3.2 Spliterator 详解

6.3.3 Spliterator总结

6.4 本章总结

第7章 Metrics(Powerful Toolkit For Measure)

7.1 Metrics快速入门

7.1.1 如何监控度量应用程序

7.1.2 Metrics环境搭建

7.2 五大Metric详解

7.2.1 Meter

7.2.2 Gauge

7.2.3 Counter

7.2.4 Histogram

7.2.5 Timer

7.3 Reporter详解

7.3.1 ConsoleReporter

7.3.2 LogReporter

7.3.3 JMXReporter

7.3.4 CsvReporter

7.4 Metrics Plugins

7.4.1 Health Check

7.4.2 JVM Instrumentation

7.5 深入Metrics源码

7.5.1 MetricRegistry如何工作

7.5.2 Reporter如何工作

7.5.3 拾遗补漏

7.6 本章总结

累计评论(0条) 1个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部