隨著多核時代的興起,現(xiàn)在的服務(wù)器CPU可能多達10個以上的內(nèi)核。對于并發(fā)編程的市場需求量激增,那么如何才能將多核CPU的性能發(fā)揮到極致呢?
而Java作為服務(wù)端編程使用最廣泛的語言,必然需要和多核CPU打交道。那Java為我們提供了哪些并發(fā)編程的工具呢?
第1部份:前言和多線程基礎(chǔ)
為什么需要并行
有關(guān)并行的重要概念
有關(guān)并行性能的2個重要定律
第2部份:多線程基礎(chǔ)
線程的基本操作
守護線程
優(yōu)先級
中斷處理
基本的線程同步操作
第3部份:Java內(nèi)存模型和線程安全
原子性
可見性
有序性
Happen-Before 規(guī)則
線程安全的概念
線程安全的反例
第4部份:JDK并發(fā)包
各種同步控制工具的使用
并發(fā)容器及典型源碼分析
同步工具、并發(fā)容器使用小案例
第5部份:JDK并發(fā)包
線程池的基本使用
擴展和增強線程池
線程池及其核心代碼分析
ForkJoin
第6部份:并發(fā)設(shè)計模式
單例
不變模式
生產(chǎn)者消費者
Future模式
第7部份:無鎖
無鎖類的使用
無鎖類的原理詳解
無鎖算法詳解
第8部份:NIO和AIO
NIO的好處
NIO核心類介紹
Selector的多路復用
使用NIO進行網(wǎng)絡(luò)編程案例
AIO介紹
第9部份:鎖的優(yōu)化和注意事項
鎖優(yōu)化的思路和方法
虛擬機內(nèi)的鎖優(yōu)化
死鎖
一個錯誤使用鎖的案例
ThreadLocal及其源碼分析
第10部份:并發(fā)調(diào)試與JDK8新特性
多線程調(diào)試的方法
多線程調(diào)試案例
線程dump及分析
JDK8對并發(fā)的新支持
第11部份:綜合案例:jetty核心代碼分析
jetty如何處理高并發(fā)
實現(xiàn)高并發(fā)程序的基本思想