本篇将会带着大家去全面剖析多线程编程的核心库、方法、原理,利用案例方式,透彻讲解高并发本质与应对方法!同时这份PDF全部以Demo式案例来讲解技术点的实现,使读者看到代码及 运行结果后就可以知道该项目要解决的是什么问题,类似于网络中博客的风格,让读者用最短的时间学习知识点,明白知识点如何应用,以及在使用时要避免什么,从而快速学习并解决问题!
这份PDF共计分为了九大部分,同时每部分相当于第二版来说都进行了重大的升级!下面咱们一部分一部分的来看和学习!
Java多线程技能
- 线程的启动;
- 如何使线程暂停;
- 如何使线程停止;
- 线程的优先级;
- 线程安全相关的问题。
对象及变量的并发访问
- synchroni zed对象监视器为0b ject时的使用方法;
- synchroni zed对象监视器为Class时的使用方法;
- 关键字volatile的主要作用;
- 关键字volatile与synchronized的区别及使用情况。
同步synchronized在字节码指令中的原理
线程间通信
- 如何使用wait/notify机制实现线程间的通信;
- 生产者/消费者模式的实现;
- join方法的使用;
- ThreadLocal类的使用。
锁的使用
- ReentrantLock类的使用;
- ReentrantReadWriteLock类的使用。
定时器
- 如何实现指定时间执行任务;
- 如何实现按照指定周期执行任务。
单例模式与多线程
本章的案例也充分说明,当线程与某些技术相结合时,我们要考虑的事情会更多。在学习本章的过程中,我们只需要考虑一件事情,那就是:如何使单例模式与多线程结合时是安全、正确的。
使用enum枚举数据类型实现单例模式
拾遗增补
- 线程组的使用;
- 线程状态是如何切换的;
- SimpleDataFormat类与多线程的解决办法;
- 如何对异常线程进行处理。
并发集合框架
线程池类ThreadPoolExecutor的使用
验证newCachedThreadPool()方法创建线程池和线程复用特性