• 文章介绍
  • 资源名称:Java并发编程之美 PDF内容简介:并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的使用方法,以及在使用过程中容易遇到的问题和解决方法。《Java并发编程之美》适合Java 初级、中高级研发工程师,对Java 并发编程感兴趣,以及希望探究JUC 包源码原理的人员阅读。作者简介:翟陆续,花名加多,四川大学计算机学院研究生毕业。目前任淘宝技术高级开发工程师,热衷于Java并发编程,对JUC包源码有深入的研究,熟悉常用开源框架实现原理。薛宾田,四川大学计算机学院研究生毕业,阿里巴巴原研发工程师,目前在河南牧业经济学院信息工程学院担任Java课程老师。资源目录:第一部分 Java 并发编程基础篇第1 章 并发编程线程基础 21.1 什么是线程 21.2 线程创建与运行 31.3 线程通知与等待 61.4 等待线程执行终止的join 方法 161.5 让线程睡眠的sleep 方法 191.6 让出CPU 执行权的yield 方法 231.7 线程中断 241.8 理解线程上下文切换 301.9 线程死锁 301.9.1 什么是线程死锁 301.9.2 如何避免线程死锁 331.10 守护线程与用户线程 351.11 ThreadLocal 391.11.1 ThreadLocal 使用示例 401.11.2 ThreadLocal 的实现原理 421.11.3 ThreadLocal 不支持继承性 451.11.4 InheritableThreadLocal 类 46第2 章 并发编程的其他基础知识 502.1 什么是多线程并发编程 502.2 为什么要进行多线程并发编程 512.3 Java 中的线程安全问题 512.4 Java 中共享变量的内存可见性问题 522.5 Java 中的synchronized 关键字 542.5.1 synchronized 关键字介绍 542.5.2 synchronized 的内存语义 552.6 Java 中的volatile 关键字 552.7 Java 中的原子性操作 572.8 Java 中的CAS 操作 592.9 Unsafe 类 592.9.1 Unsafe 类中的重要方法 592.9.2 如何使用Unsafe 类 612.10 Java 指令重排序 652.11 伪共享 672.11.1 什么是伪共享 672.11.2 为何会出现伪共享 682.11.3 如何避免伪共享 702.11.4 小结 722.12 锁的概述 722.12.1 乐观锁与悲观锁 722.12.2 公平锁与非公平锁 752.12.3 独占锁与共享锁 752.12.4 什么是可重入锁 762.12.5 自旋锁 772.13 总结 77第二部分 Java 并发编程高级篇第3 章 Java 并发包中ThreadLocalRandom 类原理剖析 803.1 Random 类及其局限性 803.2 ThreadLocalRandom 823.3 源码分析 843.4 总结 87第4 章 Java 并发包中原子操作类原理剖析 884.1 原子变量操作类 884.2 JDK 8 新增的原子操作类LongAdder 934.2.1 LongAdder 简单介绍 934.2.2 LongAdder 代码分析 954.2.3 小结 1014.3 LongAccumulator 类原理探究 1024.4 总结 104第5 章 Java 并发包中并发List 源码剖析 1055.1 介绍 1055.2 主要方法源码解析 1065.2.1 初始化 1065.2.2 添加元素 1065.2.3 获取指定位置元素 1085.2.4 修改指定元素 1095.2.5 删除元素 1105.2.6 弱一致性的迭代器 1115.3 总结 114第6 章 Java 并发包中锁原理剖析 1156.1 LockSupport 工具类 1156.2 抽象同步队列AQS 概述 1226.2.1 AQS——锁的底层支持 1226.2.2 AQS——条件变量的支持 1286.2.3 基于AQS 实现自定义同步器 1316.3 独占锁ReentrantLock 的原理 1366.3.1 类图结构 1366.3.2 获取锁 1376.3.3 释放锁 1426.3.4 案例介绍 1436.3.5 小结 1456.4 读写锁ReentrantReadWriteLock 的原理 1456.4.1 类图结构 1456.4.2 写锁的获取与释放 1476.4.3 读锁的获取与释放 1516.4.4 案例介绍 1566.4.5 小结 1586.5 JDK 8 中新增的StampedLock 锁探究 1586.5.1 概述 1586.5.2 案例介绍 1606.5.3 小结 164第7 章 Java 并发包中并发队列原理剖析 1657.1 ConcurrentLinkedQueue 原理探究 1657.1.1 类图结构 1657.1.2 ConcurrentLinkedQueue 原理介绍 1667.1.3 小结 1817.2 LinkedBlockingQueue 原理探究 1827.2.1 类图结构 1827.2.2 LinkedBlockingQueue 原理介绍 1857.2.3 小结 1947.3 ArrayBlockingQueue 原理探究 1957.3.1 类图结构 1957.3.2 ArrayBlockingQueue 原理介绍 1977.3.3 小结 2027.4 PriorityBlockingQueue 原理探究 2037.4.1 介绍 2037.4.2 PriorityBlockingQueue 类图结构 2037.4.3 原理介绍 2057.4.4 案例介绍 2147.4.5 小结 2167.5 DelayQueue 原理探究 2177.5.1 DelayQueue 类图结构 2177.5.2 主要函数原理讲解 2197.5.3 案例介绍 2227.5.4 小结 224第8 章 Java 并发包中线程池ThreadPoolExecutor 原理探究 2258.1 介绍 2258.2 类图介绍 2258.3 源码分析 2308.3.1 public void execute(Runnable command) 2308.3.2 工作线程Worker 的执行 2358.3.3 shutdown 操作 2388.3.4 shutdownNow 操作 2408.3.5 awaitTermination 操作 2418.4 总结 242第9 章 Java 并发包中ScheduledThreadPoolExecutor 原理探究 2439.1 介绍 2439.2 类图介绍 2439.3 原理剖析 2459.3.1 schedule(Runnable command, long delay,TimeUnit unit) 方法 2469.3.2 scheduleWithFixedDelay(Runnable command,long initialDelay, long delay,TimeUnit unit) 方法 2529.3.3 scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit) 方法 2549.4 总结 255第10 章 Java 并发包中线程同步器原理剖析 25610.1 CountDownLatch 原理剖析 25610.1.1 案例介绍 25610.1.2 实现原理探究 25910.1.3 小结 26310.2 回环屏障CyclicBarrier 原理探究 26410.2.1 案例介绍 26410.2.2 实现原理探究 26810.2.3 小结 27210.3 信号量Semaphore 原理探究 27210.3.1 案例介绍 27210.3.2 实现原理探究 27610.3.3 小结 28110.4 总结 281第三部分 Java 并发编程实践篇第11 章 并发编程实践 28411.1 ArrayBlockingQueue 的使用 28411.1.1 异步日志打印模型概述 28411.1.2 异步日志与具体实现 28511.1.3 小结 29311.2 Tomcat 的NioEndPoint 中ConcurrentLinkedQueue 的使用 29311.2.1 生产者——Acceptor 线程 29411.2.2 消费者——Poller 线程 29811.2.3 小结 30011.3 并发组件ConcurrentHashMap 使用注意事项 30011.4 SimpleDateFormat 是线程不安全的 30411.4.1 问题复现 30411.4.2 问题分析 30511.4.3 小结 30911.5 使用Timer 时需要注意的事情 30911.5.1 问题的产生 30911.5.2 Timer 实现原理分析 31011.5.3 小结 31311.6 对需要复用但是会被下游修改的参数要进行深复制 31411.6.1 问题的产生 31411.6.2 问题分析 31611.6.3 小结 31811.7 创建线程和线程池时要指定与业务相关的名称 31911.7.1 创建线程需要有线程名 31911.7.2 创建线程池时也需要指定线程池的名称 32111.7.3 小结 32511.8 使用线程池的情况下当程序结束时记得调用shutdown 关闭线程池 32511.8.1 问题复现 32511.8.2 问题分析 32711.8.3 小结 32911.9 线程池使用FutureTask 时需要注意的事情 32911.9.1 问题复现 32911.9.2 问题分析 33211.9.3 小结 33511.10 使用ThreadLocal 不当可能会导致内存泄漏 33611.10.1 为何会出现内存泄漏 33611.10.2 在线程池中使用ThreadLocal 导致的内存泄漏 33911.10.3 在Tomcat 的Servlet 中使用ThreadLocal 导致内存泄漏 34111.10.4 小结 34411.11 总结 344资源截图:

     

    Java并发编程之美 PDF-一天源码

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
    一天源码 » Java并发编程之美 PDF
    1896+

    本站勉强运行

    1275+

    用户总数

    18394+

    资源总数

    0+

    今日更新

    2022-6-7

    最后更新时间