课程简介:
随着多核时代的兴起,现在的服务器CPU可能多达10个以上的内核。对于并发编程的市场需求量激增,那么如何才能将多核CPU的性能发挥到极致呢?
而Java作为服务端编程使用最广泛的语言,必然需要和多核CPU打交道。那Java为我们提供了哪些并发编程的工具呢?
本课程将重点介绍基于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如何处理高并发
实现高并发程序的基本思想