图书介绍

Java并发编程之美2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Java并发编程之美
  • 翟陆续,薛宾田著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121349478
  • 出版时间:2018
  • 标注页数:344页
  • 文件大小:29MB
  • 文件页数:360页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Java并发编程之美PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分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 ThreadLocal39

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 ThreadLocalRandom82

3.3 源码分析84

3.4 总结87

第4章 Java并发包中原子操作类原理剖析88

4.1 原子变量操作类88

4.2 JDK 8新增的原子操作类LongAdder93

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

热门推荐