隨著多核時代的興起,現在的服務器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如何處理高并發
實現高并發程序的基本思想