
Java 多線程技術培訓
1 多線程的基本使用
2 臟讀與對象監(jiān)視器
3 線程的優(yōu)先級、保護線程
4 線程的等待與喚醒
5 實例變量與并發(fā)訪問
6 線程的休眠、活躍、停止
7 線程副本,死鎖與死循環(huán)
8 AQS、線程組、隊列、線程池
1
多進程和多線程的概念
1.多線程的概念
2.創(chuàng)建多線程——繼承Thread
3.創(chuàng)建多線程——實現(xiàn)Runnable
4.創(chuàng)建多線程——實現(xiàn)Callable
2
體會 start 與 run 函數(shù)之間的區(qū)別
1.多線程搶占CPU資源。
2.start()與run()函數(shù)之間的區(qū)別。
3.IllegalComponentStateException異常
3
實例變量與線程安全
1.初識synchronized關鍵字
2.實例變量的共享概念
3.實例變量的不共享概念
4
線程的休眠與活躍
1.isAlive();
2.sleep();
3.staticsynchronized靜態(tài)鎖
4.synchronized代碼塊
5.線程的生命周期
5
線程的停止
1.interrupt()函數(shù)
2.interrupted()函數(shù)
3.sleep()與tryCatch異常相結合
4.InterruptedException異常
6
線程的優(yōu)先級與保護線程
1.線程的優(yōu)先級、優(yōu)先級的繼承特性、優(yōu)先級的規(guī)則性、優(yōu)先級的隨機性
2.守護線程概念(GC垃圾回收機制即是守護線程模式)
3.利用yield()函數(shù)讓當前線程放棄CPU資源
7
實例對象與并發(fā)訪問
1.synchronized同步方法的深入理解
2.多線程中方法內的變量為線程安全的變量、多線程中實例變量為非線程安全的變量
3.多線程應用的多個鎖、多線程應用的單個鎖
8
臟讀與對象監(jiān)視器
1.實例對象鎖synchronized(this)
2.實例對象鎖的同步與異步
3.對象監(jiān)視器synchronized(Object)
4.靜態(tài)同步staticsychronized
5.靜態(tài)同步staticsychronized與實例同步的區(qū)別
9
死鎖與循環(huán)
1.synchronized與無限等待
2.解決synchronized的無限等待問題
3.多線程何種情況下會出現(xiàn)死鎖
4.jps工具 5.jstack工具
10
線程的等待與喚醒
1.使用wait()、notify()函數(shù)達到多線程之間的通信、等待/喚醒 2.join()函數(shù)
11
線程副本
1.ThreadLocal線程副本的概念
2.InherItableThreadLocal線程副本的概念
3.InherItableThreadLocal與ThreadLocal的initialValue()搭配使用、childValue函數(shù)
12
線程關鍵字的實現(xiàn)類
1.ReentrantLockjava類鎖的概念
2.Lockjava抽象接口的概念解讀、函數(shù)定義、實現(xiàn)類
3.Conditionjava監(jiān)視器接口的概念解讀、函數(shù)定義
13
AQS 與讀寫
1.AQS的概念/核心思想/模板設計模式
2.ReentrantLock原理
3.ReentrantReadwriteLock鎖的簡介/讀讀共享/讀寫互斥/寫寫互斥
14
線程組與隊列
1.線程組的概念、作用、函數(shù)、1級關聯(lián)與多級關聯(lián)
2.隊列的概念、特點、存儲結構
3.Queue隊列的概念、實現(xiàn)
4.阻塞隊列的概念
5.JDK中阻塞隊列的操作
15
線程池
1.線程池的概念、原理、作用
2.四種常見線程池的創(chuàng)建和使用
3.常見隊列
4.排隊策略
