𝔖 Scriptorium
✦   LIBER   ✦

📁

Java并发编程之美

✍ Scribed by 翟陆续; 薛宾田


Publisher
电子工业出版社
Year
2018
Tongue
Chinese
Leaves
358
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。

《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的...

并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。

《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的使用方法,以及在使用过程中容易遇到的问题和解决方法。

《Java并发编程之美》适合Java 初级、中高级研发工程师,对Java 并发编程感兴趣,以及希望探究JUC 包源码原理的人员阅读。

✦ Table of Contents


扉页
版权页
业界好评
前言
目录
第一部分 Java并发编程基础篇
第1章 并发编程线程基础
1.1 什么是线程
1.2 线程创建与运行
1.3 线程通知与等待
1.4 等待线程执行终止的join方法
1.5 让线程睡眠的sleep方法
1.6 让出CPU执行权的yield方法
1.7 线程中断
1.8 理解线程上下文切换
1.9 线程死锁
1.9.1 什么是线程死锁
1.9.2 如何避免线程死锁
1.10 守护线程与用户线程
1.11 ThreadLocal
1.11.1 ThreadLocal使用示例
1.11.2 ThreadLocal的实现原理
1.11.3 ThreadLocal不支持继承性
1.11.4 InheritableThreadLocal类
第2章 并发编程的其他基础知识
2.1 什么是多线程并发编程
2.2 为什么要进行多线程并发编程
2.3 Java中的线程安全问题
2.4 Java中共享变量的内存可见性问题
2.5 Java中的synchronized关键字
2.5.1 synchronized关键字介绍
2.5.2 synchronized的内存语义
2.6 Java中的volatile关键字
2.7 Java中的原子性操作
2.8 Java中的CAS操作
2.9 Unsafe类
2.9.1 Unsafe类中的重要方法
2.9.2 如何使用Unsafe类
2.10 Java指令重排序
2.11 伪共享
2.11.1 什么是伪共享
2.11.2 为何会出现伪共享
2.11.3 如何避免伪共享
2.11.4 小结
2.12 锁的概述
2.12.1 乐观锁与悲观锁
2.12.2 公平锁与非公平锁
2.12.3 独占锁与共享锁
2.12.4 什么是可重入锁
2.12.5 自旋锁
2.13 总结
第二部分 Java并发编程高级篇
第3章 Java并发包中ThreadLocalRandom类原理剖析
3.1 Random类及其局限性
3.2 ThreadLocalRandom
3.3 源码分析
3.4 总结
第4章 Java并发包中原子操作类原理剖析
4.1 原子变量操作类
4.2 JDK 8新增的原子操作类LongAdder
4.2.1 LongAdder简单介绍
4.2.2 LongAdder代码分析
4.2.3 小结
4.3 LongAccumulator类原理探究
4.4 总结
第5章 Java并发包中并发List源码剖析
5.1 介绍
5.2 主要方法源码解析
5.2.1 初始化
5.2.2 添加元素
5.2.3 获取指定位置元素
5.2.4 修改指定元素
5.2.5 删除元素
5.2.6 弱一致性的迭代器
5.3 总结
第6章 Java并发包中锁原理剖析
6.1 LockSupport工具类
6.2 抽象同步队列AQS概述
6.2.1 AQS——锁的底层支持
6.2.2 AQS——条件变量的支持
6.2.3 基于AQS实现自定义同步器
6.3 独占锁ReentrantLock的原理
6.3.1 类图结构
6.3.2 获取锁
6.3.3 释放锁
6.3.4 案例介绍
6.3.5 小结
6.4 读写锁ReentrantReadWriteLock的原理
6.4.1 类图结构
6.4.2 写锁的获取与释放
6.4.3 读锁的获取与释放
6.4.4 案例介绍
6.4.5 小结
6.5 JDK 8中新增的StampedLock锁探究
6.5.1 概述
6.5.2 案例介绍
6.5.3 小结
第7章 Java并发包中并发队列原理剖析
7.1 ConcurrentLinkedQueue原理探究
7.1.1 类图结构
7.1.2 ConcurrentLinkedQueue原理介绍
7.1.3 小结
7.2 LinkedBlockingQueue原理探究
7.2.1 类图结构
7.2.2 LinkedBlockingQueue原理介绍
7.2.3 小结
7.3 ArrayBlockingQueue原理探究
7.3.1 类图结构
7.3.2 ArrayBlockingQueue原理介绍
7.3.3 小结
7.4 PriorityBlockingQueue原理探究
7.4.1 介绍
7.4.2 PriorityBlockingQueue类图结构
7.4.3 原理介绍
7.4.4 案例介绍
7.4.5 小结
7.5 DelayQueue原理探究
7.5.1 DelayQueue类图结构
7.5.2 主要函数原理讲解
7.5.3 案例介绍
7.5.4 小结
第8章 Java并发包中线程池ThreadPoolExecutor原理探究
8.1 介绍
8.2 类图介绍
8.3 源码分析
8.3.1 public void execute(Runnable command)
8.3.2 工作线程Worker的执行
8.3.3 shutdown操作
8.3.4 shutdownNow操作
8.3.5 awaitTermination操作
8.4 总结
第9章 Java并发包中ScheduledThreadPoolExecutor原理探究
9.1 介绍
9.2 类图介绍
9.3 原理剖析
9.3.1 schedule(Runnable command, long delay,TimeUnit unit)方法
9.3.2 scheduleWithFixedDelay(Runnable command,long initialDelay, long delay,TimeUnit unit)方法
9.3.3 scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit)方法
9.4 总结
第10章 Java并发包中线程同步器原理剖析
10.1  CountDownLatch原理剖析
10.1.1 案例介绍
10.1.2 实现原理探究
10.1.3 小结
10.2 回环屏障CyclicBarrier原理探究
10.2.1 案例介绍
10.2.2 实现原理探究
10.2.3 小结
10.3 信号量Semaphore原理探究
10.3.1 案例介绍
10.3.2 实现原理探究
10.3.3 小结
10.4 总结
第三部分 Java并发编程实践篇
第11章 并发编程实践
11.1 ArrayBlockingQueue的使用
11.1.1 异步日志打印模型概述
11.1.2 异步日志与具体实现
11.1.3 小结
11.2 Tomcat的NioEndPoint中ConcurrentLinkedQueue的使用
11.2.1 生产者——Acceptor线程
11.2.2 消费者——Poller线程
11.2.3 小结
11.3 并发组件ConcurrentHashMap使用注意事项
11.4 SimpleDateFormat是线程不安全的
11.4.1 问题复现
11.4.2 问题分析
11.4.3 小结
11.5 使用Timer时需要注意的事情
11.5.1 问题的产生
11.5.2 Timer实现原理分析
11.5.3 小结
11.6 对需要复用但是会被下游修改的参数要进行深复制
11.6.1 问题的产生
11.6.2 问题分析
11.6.3 小结
11.7 创建线程和线程池时要指定与业务相关的名称
11.7.1 创建线程需要有线程名
11.7.2 创建线程池时也需要指定线程池的名称
11.7.3 小结
11.8 使用线程池的情况下当程序结束时记得调用shutdown关闭线程池
11.8.1 问题复现
11.8.2 问题分析
11.8.3 小结
11.9 线程池使用FutureTask时需要注意的事情
11.9.1 问题复现
11.9.2 问题分析
11.9.3 小结
11.10 使用ThreadLocal不当可能会导致内存泄漏
11.10.1 为何会出现内存泄漏
11.10.2 在线程池中使用ThreadLocal导致的内存泄漏
11.10.3 在Tomcat的Servlet中使用ThreadLocal导致内存泄漏
11.10.4 小结
11.11 总结


📜 SIMILAR VOLUMES


JAVA并发编程实践
✍ 戈茨 📂 Library 📅 2007 🏛 电子工业出版社 🌐 Chinese

<p>《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这些便利工具的创造者不仅解释了它们究竟如何工作、如何使用,还阐释了创造它们的原因,及其背后的设计模式。</p>

Haskell并行与并发编程
✍ [英] Simon Marlow 📂 Library 📅 2014 🏛 人民邮电出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 《Haskell并行与并发编程》深入浅出地介绍如何使用Haskell语言及相关的库和框架编写并行和并发程序。《Haskell并行与并发编程》用两个部分分别讲解并行Haskell编程和并发Haskell编程。根据编程模型的不同,并行部分介绍了3种并行编程方式:基于惰性求值的并行(Eval Monad及求值策略)、基于数据流的并行(Par Monad)以及面向大规模数组算法的并行(Repa数据并行编程和Acellerate GPU编程)。并发部分则按抽象层次由低到高分别涉及线程和MVar、重叠