随着多核时代的兴起,现在的服务器CPU可能多达10个以上的内核。对于并发编程的市场需求量激增,那么如何才能将多核CPU的性能发挥到极致呢?
而Java作为服务端编程使用广泛的语言,必然需要和多核CPU打交道。那Java为我们提供了哪些并发编程的工具呢?
第1部份:前言和多线程基础
为什么需要并行
有关并行的重要概念
有关并行性能的2个重要定律
第2部份:多线程基础
线程的基本操作
守护线程
优先级
中断处理
基本的线程同步操作
第3部份:Java内存模型和线程安全
原子性
可见性
有序性
Happen-Before 规则
线程安全的概念
线程安全的反例
第4部份:JDK并发包
各种同步控制工具的使用
并发容器及典型源码分析
同步工具、并发容器使用小案例
第5部份:JDK并发包
线程池的基本使用
扩展和增强线程池
线程池及其核心代码分析
ForkJoin
第6部份:并发设计模式
单例
不变模式
生产者消费者
Future模式
第7部份:无锁
无锁类的使用
无锁类的原理详解
无锁算法详解
第8部份:NIO和AIO
NIO的好处
NIO核心类介绍
Selector的多路复用
使用NIO进行网络编程案例
AIO介绍
第9部份:锁的优化和注意事项
锁优化的思路和方法
虚拟机内的锁优化
死锁
一个错误使用锁的案例
ThreadLocal及其源码分析
第10部份:并发调试与JDK8新特性
多线程调试的方法
多线程调试案例
线程dump及分析
JDK8对并发的新支持
第11部份:综合案例:jetty核心代码分析
jetty如何处理高并发
实现高并发程序的基本思想