Java高并发编程详解:深入理解并发核心库,文字可复制,高清PDF
mhr18 2024-10-07 10:07 25 浏览 0 评论
Java高并发编程详解:深入理解并发核心库,文字可复制,高清PDF资源,需要的可以私我 :)
内容介绍:
本书共包含四大部分。
第一部分(第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作为系统运行性能指标收集的手段。
作者介绍:
汪文君
某外企数据服务中心技术经理、技术专家,目前专注于实时数据data pipeline平台的构建与架构,以及部门内部DevOps的建设。对团队管理、项目管理有着自己独到的见解。在加入该公司之前曾拥有多年的移动网关通信研发经验,以及移动互联网、云计算、B2C电子商务平台等架构的开发经验。热衷于技术分享,善于锤炼技术细节,目前已录制20余套技术视频,在互联网上得到广泛传播。另著有《Java高并发编程详解:多线程与架构设计》,该书被机械工业出版社华章公司评选为2018年度十佳图书之一。
本书目录:
第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
1.4.1 编写正确的微基准测试用例 28
1.4.2 一些高级的用法 38
1.5 JMH的Profiler 45
1.5.1 StackProfiler 45
1.5.2 GcProfiler 47
1.5.3 ClassLoaderProfiler 51
1.5.4 CompilerProfiler 54
1.6 本章总结 56
●第2章 Java并发包之原子类型详解 57
2.1 AtomicInteger详解 58
2.1.1 性能测试对比 58
2.1.2 AtomicInteger的基本用法 61
2.1.3 AtomicInteger内幕 66
2.1.4 AtomicInteger总结 68
2.2 AtomicBoolean详解 69
2.2.1 AtomicBoolean的基本用法 69
2.2.2 AtomicBoolean内幕 71
2.2.3 Try Lock显式锁的实现 71
2.2.4 AtomicBoolean总结 74
2.3 AtomicLong详解 74
2.4 AtomicReference详解 76
2.4.1 AtomicReference的应用场景 77
2.4.2 AtomicReference的基本用法 83
2.4.3 AtomicReference的内幕 84
2.4.4 AtomicReference总结 86
2.5 AtomicStampedReference详解 86
2.5.1 CAS算法ABA问题 86
2.5.2 AtomicStampedReference详解 87
2.5.3 AtomicStampedReference总结 89
2.6 AtomicArray详解 89
2.7 AtomicFieldUpdater详解 90
2.7.1 原子性更新对象属性 90
2.7.2 注意事项 91
2.7.3 AtomicFieldUpdater总结 93
2.8 sun.misc.Unsafe详解 93
2.8.1 如何获取Unsafe 94
2.8.2 JNI、Java和C/C++混合编程 95
2.8.3 危险的Unsafe 98
2.8.4 sun.misc.Unsafe总结 100
2.9 本章总结 100
●第3章 Java并发包之工具类详解 102
3.1 CountDownLatch工具详解 102
3.1.1 等待所有子任务结束 103
3.1.2 CountDownLatch的其他方法及总结 106
3.2 CyclicBarrier工具详解 107
3.2.1 等待所有子任务结束 107
3.2.2 CyclicBarrier的循环特性 110
3.2.3 CyclicBarrier的其他方法以及总结 114
3.2.4 CyclicBarrier VS. CountDownLatch 116
3.3 Exchanger工具详解 116
3.3.1 一对线程间的数据交换 116
3.3.2 Exchanger的方法详解 121
3.3.3 Exchanger总结 123
3.4 Semaphore工具详解 124
3.4.1 Semaphore限制同时在线的用户数量 124
3.4.2 使用Semaphore定义try lock 127
3.4.3 Semaphore其他方法详解 129
3.4.4 扩展Semaphore增强release 135
3.4.5 Semaphore总结 138
3.5 Phaser工具详解 138
3.5.1 Phaser的基本用法 138
3.5.2 Phase(阶段)以及Phaser方法详解 144
3.5.3 Phaser层级关系 148
3.5.4 Phaser总结 149
3.6 Lock&ReentrantLock详解 150
3.6.1 Lock及ReentrantLock方法详解 150
3.6.2 正确使用显式锁Lock 152
3.6.3 ReentrantLock VS. Synchronized关键字 158
3.6.4 显式锁Lock总结 164
3.7 ReadWriteLock&ReentrantRead-WriteLock详解 165
3.7.1 读写锁的基本使用方法 165
3.7.2 读写锁的方法 167
3.7.3 基准测试性能对比 167
3.7.4 读写锁总结 170
3.8 Condition详解 171
3.8.1 初识Condition 171
3.8.2 Condition接口方法详解 174
3.8.3 使用Condition之生产者消费者 177
3.8.4 Condition总结 181
3.9 StampedLock详解 181
3.9.1 读写锁的饥饿写问题 182
3.9.2 StampedLock的使用 183
3.9.3 与其他锁的性能对比 185
3.9.4 StampedLock总结 191
3.10 Guava之Monitor详解 192
3.10.1 Monitor及Guard 192
3.10.2 Monitor的其他方法 194
3.10.3 Monitor总结 194
3.11 Guava之RateLimiter详解 194
3.11.1 RateLimiter的基本使用 195
3.11.2 RateLimiter的限流操作——漏桶算法 196
3.11.3 令牌环桶算法 201
3.11.4 RateLimiter总结 204
3.12 本章总结 204
●第4章 Java并发包之并发容器详解 205
4.1 链表 206
4.1.1 基本的链表 206
4.1.2 优先级链表 210
4.1.3 跳表(SkipList) 213
4.1.4 链表总结 221
4.2 BlockingQueue(阻塞队列) 221
4.2.1 ArrayBlockingQueue 222
4.2.2 PriorityBlockingQueue 226
4.2.3 LinkedBlockingQueue 228
4.2.4 DelayQueue 228
4.2.5 SynchronousQueue 231
4.2.6 LinkedBlockingDeque 233
4.2.7 LinkedTransferQueue 234
4.2.8 BlockingQueue总结 236
4.3 ConcurrentQueue(并发队列) 237
4.3.1 并发队列的性能 239
4.3.2 并发队列在使用中需要注意的问题 241
4.3.3 并发队列总结 245
4.4 ConcurrentMap(并发映射) 245
4.4.1 ConcurrentHashMap简介 245
4.4.2 ConcurrentSkipListMap简介 247
4.4.3 并发映射总结 247
4.5 写时拷贝算法(Copy On Write) 248
4.5.1 CopyOnWrite读实现操作分析 249
4.5.2 CopyOnWrite写实现操作分析 249
4.5.3 CopyOnWrite总结 250
4.6 高并发无锁(Lock Free)数据结构的实现 250
4.6.1 高并发无锁链表的实现 250
4.6.2 Lock Free数据结构的测试 253
4.6.3 本节总结 255
4.7 本章总结 255
●第5章 Java并发包之ExecutorService详解 256
5.1 Executor&ExecutorService详解 256
5.1.1 ThreadPoolExecutor详解 257
5.1.2 ScheduledExecutorService详解 265
5.1.3 关闭ExecutorService 271
5.1.4 Executors详解 273
5.1.5 ExecutorService总结 276
5.2 Future和Callback 277
5.2.1 Future详解 277
5.2.2 ExecutorService与Future 280
5.2.3 Future的不足之处 282
5.2.4 Google Guava的Future 282
5.2.5 Future总结 284
5.3 ForkJoinPool 详解 284
5.3.1 Fork/Join Framework介绍 284
5.3.2 ForkJoinTask详解 285
5.3.3 ForkJoinPool总结 289
5.4 CompletionService详解 289
5.4.1 ExecutorService执行批量任务的缺陷 289
5.4.2 CompletionService详解 291
5.4.3 CompletionService总结 294
5.5 CompletableFuture详解 294
5.5.1 CompletableFuture的基本用法 294
5.5.2 任务的异步运行 296
5.5.3 异步任务链 296
5.5.4 合并多个Future 298
5.5.5 多Future的并行计算 299
5.5.6 错误处理 299
5.5.7 JDK 9对CompletableFuture的进一步支持 300
5.5.8 CompletableFuture总结 300
5.6 本章总结 301
●第6章 Java Streams详解 302
6.1 Stream介绍及其基本操作 302
6.1.1 如何创建Stream 303
6.1.2 Stream之Intermediate操作 306
6.1.3 Stream之Terminal操作 312
6.1.4 NumericStream详解 317
6.1.5 Stream总结 320
6.2 Collector在Stream中的使用 320
6.2.1 初识Collector 321
6.2.2 Collectors用法详解 324
6.2.3 自定义Collector 335
6.2.4 Collector总结 336
6.3 Parallel Stream详解 337
6.3.1 并行流Parallel Stream 337
6.3.2 Spliterator 详解 340
6.3.3 Spliterator总结 343
6.4 本章总结 344
●第7章 Metrics(Powerful Toolkit For Measure) 345
7.1 Metrics快速入门 345
7.1.1 如何监控度量应用程序 345
7.1.2 Metrics环境搭建 346
7.2 五大Metric详解 346
7.2.1 Meter 347
7.2.2 Gauge 349
7.2.3 Counter 360
7.2.4 Histogram 362
7.2.5 Timer 370
7.3 Reporter详解 372
7.3.1 ConsoleReporter 373
7.3.2 LogReporter 376
7.3.3 JMXReporter 378
7.3.4 CsvReporter 379
7.4 Metrics Plugins 380
7.4.1 Health Check 381
7.4.2 JVM Instrumentation 386
7.5 深入Metrics源码 387
7.5.1 MetricRegistry如何工作 388
7.5.2 Reporter如何工作 392
7.5.3 拾遗补漏 394
7.6 本章总结 396
Java高并发编程详解:深入理解并发核心库,文字可复制,高清PDF资源,需要的可以私我 :)
相关推荐
- Spring Boot 分布式事务实现简单得超乎想象
-
环境:SpringBoot2.7.18+Atomikos4.x+MySQL5.71.简介关于什么是分布式事务,本文不做介绍。有需要了解的自行查找相关的资料。本篇文章将基于SpringBoot...
- Qt编写可视化大屏电子看板系统15-曲线面积图
-
##一、前言曲线面积图其实就是在曲线图上增加了颜色填充,单纯的曲线可能就只有线条以及数据点,面积图则需要从坐标轴的左下角和右下角联合曲线形成完整的封闭区域路径,然后对这个路径进行颜色填充,为了更美观...
- Doris大数据AI可视化管理工具SelectDB Studio重磅发布!
-
一、初识SelectDBStudioSelectDBStudio是专为ApacheDoris湖仓一体典型场景实战及其兼容数据库量身打造的GUI工具,简化数据开发与管理。二、Select...
- RAD Studio 、Delphi或C++Builder设计代码编译上线缩短开发时间
-
#春日生活打卡季#本月,Embarcadero宣布RADStudio12.3Athens以及Delphi12.3和C++Builder12.3,提供下载。RADStudio12.3A...
- Mybatis Plus框架学习指南-第三节内容
-
自动填充字段基本概念MyBatis-Plus提供了一个便捷的自动填充功能,用于在插入或更新数据时自动填充某些字段,如创建时间、更新时间等。原理自动填充功能通过实现com.baomidou.myba...
- 「数据库」Sysbench 数据库压力测试工具
-
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以...
- 如何选择适合公司的ERP(选erp系统的经验之谈)
-
很多中小公司想搞ERP,但不得要领。上ERP的目的都是歪的,如提高效率,减少人员,堵住财务漏洞等等。真正用ERP的目的是借机提升企业管理能力,找出管理上的问题并解决,使企业管理更规范以及标准化。上ER...
- Manus放开注册,但Flowith才是Agent领域真正的yyds
-
大家好,我是运营黑客。前天,AIAgent领域的当红炸子鸡—Manus宣布全面放开注册,终于,不需要邀请码就能体验了。于是,赶紧找了个小号去确认一下。然后,额……就被墙在了外面。官方解释:中文版...
- 歌浓酒庄总酿酒师:我们有最好的葡萄园和最棒的酿酒师
-
中新网1月23日电1月18日,张裕董事长周洪江及总经理孙健一行在澳大利亚阿德莱德,完成了歌浓酒庄股权交割签约仪式,这也意味着张裕全球布局基本成型。歌浓:澳大利亚年度最佳酒庄据悉,此次张裕收购的...
- 软件测试进阶之自动化测试——python+appium实例
-
扼要:1、了解python+appium进行APP的自动化测试实例;2、能根据实例进行实训操作;本课程主要讲述用python+appium对APP进行UI自动化测试的例子。appium支持Androi...
- 为什么说Python是最伟大的语言?看图就知道了
-
来源:麦叔编程作者:麦叔测试一下你的分析能力,直接上图,自己判断一下为什么Python是最好的语言?1.有图有真相Java之父-JamesGoshlingC++之父-BjarneStrou...
- 如何在Eclipse中配置Python开发环境?
-
Eclipse是著名的跨平台集成开发环境(IDE),最初主要用来Java语言开发。但是我们通过安装不同的插件Eclipse可以支持不同的计算机语言。比如说,我们可以通过安装PyDev插件,使Eclip...
- 联合国岗位上新啦(联合国的岗位)
-
联合国人权事务高级专员办事处PostingTitleIntern-HumanRightsDutyStationBANGKOKDeadlineOct7,2025CategoryandL...
- 一周安全漫谈丨工信部:拟定超1亿条一般数据泄露属后果严重情节
-
工信部:拟定超1亿条一般数据泄露属后果严重情节11月23日,工信部官网公布《工业和信息化领域数据安全行政处罚裁量指引(试行)(征求意见稿)》。《裁量指引》征求意见稿明确了行政处罚由违法行为发生地管辖、...
- oracle列转行以及C#执行语句时报错问题
-
oracle列转行的关键字:UNPIVOT,经常查到的怎么样转一列,多列怎么转呢,直接上代码(sshwomeyourcode):SELECTsee_no,diag_no,diag_code,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)