Java并发编程之美PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:翟陆续,薛宾田著
- 出 版 社:北京:电子工业出版社
- 出版年份:2018
- ISBN:9787121349478
- 页数:344 页
第一部分Java并发编程基础篇 2
第1章 并发编程线程基础 2
1.1 什么是线程 2
1.2 线程创建与运行 3
1.3 线程通知与等待 6
1.4 等待线程执行终止的join方法 16
1.5 让线程睡眠的sleep方法 19
1.6 让出CPU执行权的yield方法 23
1.7 线程中断 24
1.8 理解线程上下文切换 30
1.9 线程死锁 30
1.9.1 什么是线程死锁 30
1.9.2 如何避免线程死锁 33
1.10 守护线程与用户线程 35
1.11 ThreadLocal 39
1.11 .1 ThreadLocal使用示例 40
1.11 .2 ThreadLocal的实现原理 42
1.11 .3 ThreadLocal不支持继承性 45
1.11 .4 InheritableThreadLocal类 46
第2章 并发编程的其他基础知识 50
2.1 什么是多线程并发编程 50
2.2 为什么要进行多线程并发编程 51
2.3 Java中的线程安全问题 51
2.4 Java中共享变量的内存可见性问题 52
2.5 Java中的synchronized关键字 54
2.5.1 synchronized关键字介绍 54
2.5.2 synchronized的内存语义 55
2.6 Java中的volatile关键字 55
2.7 Java中的原子性操作 57
2.8 Java中的CAS操作 59
2.9 Unsafe类 59
2.9.1 Unsafe类中的重要方法 59
2.9.2 如何使用Unsafe类 61
2.10 Java指令重排序 65
2.11 伪共享 67
2.11 .1 什么是伪共享 67
2.11 .2 为何会出现伪共享 68
2.11 .3 如何避免伪共享 70
2.11 .4 小结 72
2.12 锁的概述 72
2.12 .1 乐观锁与悲观锁 72
2.12 .2 公平锁与非公平锁 75
2.12 .3 独占锁与共享锁 75
2.12 .4 什么是可重入锁 76
2.12 .5 自旋锁 77
2.13 总结 77
第二部分Java并发编程高级篇 80
第3章Java并发包中Thread Local Random类原理剖析 80
3.1 Random类及其局限性 80
3.2 ThreadLocalRandom 82
3.3 源码分析 84
3.4 总结 87
第4章 Java并发包中原子操作类原理剖析 88
4.1 原子变量操作类 88
4.2 JDK 8新增的原子操作类LongAdder 93
4.2.1 LongAdder简单介绍 93
4.2.2 LongAdder代码分析 95
4.2.3 小结 101
4.3 LongAccumulator类原理探究 102
4.4 总结 104
第5章 Java并发包中并发List源码剖析 105
5.1 介绍 105
5.2 主要方法源码解析 106
5.2.1 初始化 106
5.2.2 添加元素 106
5.2.3 获取指定位置元素 108
5.2.4 修改指定元素 109
5.2.5 删除元素 110
5.2.6 弱一致性的迭代器 111
5.3 总结 114
第6章 Java并发包中锁原理剖析 115
6.1 LockSupport工具类 115
6.2 抽象同步队列AQS概述 122
6.2.1 AQS——锁的底层支持 122
6.2.2 AQS——条件变量的支持 128
6.2.3 基于AQS实现自定义同步器 131
6.3 独占锁ReentrantLock的原理 136
6.3.1 类图结构 136
6.3.2 获取锁 137
6.3.3 释放锁 142
6.3.4 案例介绍 143
6.3.5 小结 145
6.4 读写锁ReentrantReadWriteLock的原理 145
6.4.1 类图结构 145
6.4.2 写锁的获取与释放 147
6.4.3 读锁的获取与释放 151
6.4.4 案例介绍 156
6.4.5 小结 158
6.5 JDK 8中新增的StampedLock锁探究 158
6.5.1 概述 158
6.5.2 案例介绍 160
6.5.3 小结 164
第7章 Java并发包中并发队列原理剖析 165
7.1 ConcurrentLinkedQueue原理探究 165
7.1.1 类图结构 165
7.1.2 ConcurrentLinkedQueue原理介绍 166
7.1.3 小结 181
7.2 LinkedBlockingQueue原理探究 182
7.2.1 类图结构 182
7.2.2 LinkedBlockingQueue原理介绍 185
7.2.3 小结 194
7.3 ArrayBlockingQueue原理探究 195
7.3.1 类图结构 195
7.3.2 ArrayBlockingQueue原理介绍 197
7.3.3 小结 202
7.4 PriorityBlockingQueue原理探究 203
7.4.1 介绍 203
7.4.2 PriorityBlockingQueue类图结构 203
7.4.3 原理介绍 205
7.4.4 案例介绍 214
7.4.5 小结 216
7.5 DelayQueue原理探究 217
7.5.1 DelayQueue类图结构 217
7.5.2 主要函数原理讲解 219
7.5.3 案例介绍 222
7.5.4 小结 224
第8章 Java并发包中线程池Thread Pool Executor原理探究 225
8.1 介绍 225
8.2 类图介绍 225
8.3 源码分析 230
8.3.1 public void execute(Runnable command) 230
8.3.2 工作线程Worker的执行 235
8.3.3 shutdown操作 238
8.3.4 shutdownNow操作 240
8.3.5 awaitTermination操作 241
8.4 总结 242
第9章 Java并发包中ScheduledThread Pool Executor原理探究 243
9.1 介绍 243
9.2 类图介绍 243
9.3 原理剖析 245
9.3.1 schedule(Runnable command,long delay,TimeUnit unit)方法 246
9.3.2 scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit)方法 252
9.3.3 scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit)方法 254
9.4 总结 255
第10章 Java并发包中线程同步器原理剖析 256
10.1 CountDownLatch原理剖析 256
10.1.1 案例介绍 256
10.1.2 实现原理探究 259
10.1.3 小结 263
10.2 回环屏障CyclicBarrier原理探究 264
10.2.1 案例介绍 264
10.2.2 实现原理探究 268
10.2.3 小结 272
10.3 信号量Semaphore原理探究 272
10.3.1 案例介绍 272
10.3.2 实现原理探究 276
10.3.3 小结 281
10.4 总结 281
第三部分 Java并发编程实践篇 284
第11章 并发编程实践 284
11.1 ArrayBlockingQueue的使用 284
11.1.1 异步日志打印模型概述 284
11.1.2 异步日志与具体实现 285
11.1.3 小结 293
11.2 Tomcat的NioEndPoint中ConcurrentLinkedQueue的使用 293
11.2.1 生产者——Acceptor线程 294
11.2.2 消费者——Poller线程 298
11.2.3 小结 300
11.3 并发组件ConcurrentHashMap使用注意事项 300
11.4 SimpleDateFormat是线程不安全的 304
11.4.1 问题复现 304
11.4.2 问题分析 305
11.4.3 小结 309
11.5 使用Timer时需要注意的事情 309
11.5.1 问题的产生 309
11.5.2 Timer实现原理分析 310
11.5.3 小结 313
11.6 对需要复用但是会被下游修改的参数要进行深复制 314
11.6.1 问题的产生 314
11.6.2 问题分析 316
11.6.3 小结 318
11.7 创建线程和线程池时要指定与业务相关的名称 319
11.7.1 创建线程需要有线程名 319
11.7.2 创建线程池时也需要指定线程池的名称 321
11.7.3 小结 325
11.8 使用线程池的情况下当程序结束时记得调用shutdown关闭线程池 325
11.8.1 问题复现 325
11.8.2 问题分析 327
11.8.3 小结 329
11.9 线程池使用FutureTask时需要注意的事情 329
11.9.1 问题复现 329
11.9.2 问题分析 332
11.9.3 小结 335
11.10 使用ThreadLocal不当可能会导致内存泄漏 336
11.10 .1 为何会出现内存泄漏 336
11.10 .2 在线程池中使用ThreadLocal导致的内存泄漏 339
11.10 .3 在Tomcat的Servlet中使用ThreadLocal导致内存泄漏 341
11.10 .4 小结 344
11.11 总结 344
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
- 《我的第一套编程启蒙绘本 123 序列来啦》编程猫教研团队编绘 2019
- 《高等院校计算机任务驱动教改教材 C语言编程思维 第2版》(中国)陈萌,鲍淑娣 2019
- 《面部美容手术常见并发症及防治策略》(美)埃里·费尔内里尼,王晓军,龙笑 2019
- 《我的第一套编程启蒙绘本 咦 什么在 循环》编程猫教研团队编绘 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017