Java多執行緒知識點總結(思維導圖+原始碼筆記),已整理成PDF版檔案

2020-09-24 20:00:49

多執行緒大家在初學的時候,對這個知識點應該有不少的疑惑的。我認為主要原因有兩個:

  • 多執行緒在初學的時候不太好學,並且一般寫專案的時候也很少用得上(至少在初學階段時寫的專案基本不需要自己建立執行緒)。
  • 多執行緒的知識點在面試經常考,多執行緒所涉及的知識點非常多,難度也不低。

這就會給人帶來一種感覺「這破玩意涉及的東西是真的廣,平時也不怎麼用,怎麼面試就偏偏愛問這個鬼東西

不多BB,我要開始了。

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

多執行緒知識重要嗎?

我們日常「關於多執行緒的程式碼」寫得不多,但是我們寫的程式程式碼的的確確是在多執行緒的環境下跑的。

如果我們不懂多執行緒知識,很直接的一個現實:

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

從開頭的思維導圖裡我們可以發現多執行緒的知識點還是很多的,我們起碼得知道:

  • 執行緒和程序的區別
  • Thead類的常見方法
  • 可以用什麼手段來解決執行緒安全性問題
  • Synchronized和Lock鎖的區別
  • 什麼是AQS、ReentrantLock和ReentrantReadWriteLock鎖
  • JDK自帶的執行緒池有哪幾個,執行緒池的構造方法重要的引數
  • 什麼是死鎖,怎麼避免死鎖
  • CountDownLatch、CyclicBarrier、Semaphore是什麼?
  • Atomic包下的常見子類,什麼是CAS,CAS會有什麼問題
  • ThreadLocal是什麼?
  • …..//

雖然在工作中未必會全部用得上,但如果專案真的用到了,我們如果學過了可能就可以很快地理解當時為什麼要這樣設計(我覺得去挖掘過程還是挺有意思的)。

我可能不用,但你必須要有

這個道理也很容易懂:「我買電腦的時候,雖然我是木耳聽不出什麼音質出來,但你音質就是得好」。企業招人的時候也一樣「你在工作的時候未必要寫,但你必須要會

至少在我看來,從求職的角度出發,多執行緒是很重要的。之前我還整理過在我當時校招經常被問到的多執行緒面試題目:

  1. 多執行緒瞭解多少啊?使用多執行緒會有什麼問題?你是怎麼理解「執行緒安全」的?
  2. 如果我現在想要某個操作等待執行緒結束之後才執行,有什麼方法可以實現?為什麼要用CountDownLatch?CountDownLatch的底層是什麼?(引出AQS)
  3. synchronized關鍵字來說一下,它的用途是什麼?synchronized底層的原理是什麼?
  4. 執行緒安全的容器有哪些?(著重於ConcurrentHashMap、CopyWriteOnArrayList與其他非執行緒安全容器的區別以及它們的具體實現)
  5. ThreadLocal你瞭解過嗎?主要是用來幹什麼的?具體的原始碼實現原理來說一下吧
  6. 產生死鎖的條件是什麼?我們可以如何避免死鎖?(可延伸到作業系統層面上的死鎖)
  7. synchronized鎖和ReentrantLock鎖有什麼區別呀?
  8. 執行緒池你應該也看過吧,來說說為什麼要用執行緒池。JDK預設實現了幾個執行緒池,分別有xxx(自然地ThreadPoolExecutor建構函式的常用幾個引數你也得一起說出來)

轉發+關注,然後新增VX(tkzl6666) 即可獲得《Java多執行緒知識點總結》PDF檔案資料的免費領取方式!

一、什麼是多執行緒

初識多執行緒

  • 1.1介紹程序
  • 1.2回到執行緒
  • 1.3程序與執行緒
  • 1.4並行與並行
  • 1.5Java實現多執行緒
  • 1.6Java實現多執行緒需要注意的細節

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

二、Thread類解析

Thread執行緒類API

  • 1.2守護執行緒
  • 1.3優先順序執行緒
  • 1.4執行緒生命週期

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

三、使用多執行緒需要注意的問題

  • 1、使用多執行緒遇到的問題
  • 2、物件的釋出與逸出
  • 3、解決多執行緒遇到的問題
  • 4、多執行緒需要注意的事 -總結

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

四、synchronized鎖和lock鎖

  • 1、synchronized鎖
  • 2、Lock顯式鎖
  • 3、Java鎖簡單總結

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

五、AQS

  • 1、AQS是什麼?
  • 2、簡單看看AQS

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

六、ReentrantLock和ReentrantReadWriteLock

  • 1、ReentrantLock鎖
  • 2、ReentrantReadWriteLock
  • 3、最後

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

七、執行緒池

  • 1、執行緒池簡介
  • 2、JDK提供的執行緒池API
  • 3、ThreadPoolExecutor詳解
  • 4、execute執行方法
  • 5、執行緒池關閉

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

八、死鎖

  • 1、死鎖講解
  • 2、避免死鎖的方法
  • 3、死鎖總結

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

九、執行緒常用的工具類

  • 1、CountDownLatch
  • 2、CyclicBarrier
  • 3、Semaphore
  • 4、總結

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

十、Atomic

  • 1、基礎鋪墊
  • 2、原子變數類簡單介紹

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

十一、ThreadLocal

  • 1、什麼是ThreadLocal
  • 2、為什麼要學習ThreadLocal?
  • 3、ThreadLocal實現的原理
  • 4、避免記憶體洩露
  • 5、總結

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件

 

放乾貨

PDF的內容非常非常長,乾貨非常非常的硬,有興趣的讀者可以瀏覽一波。共有「129」頁

轉發+關注,然後新增VX(tkzl6666)即可獲得《Java多執行緒知識點總結》PDF檔案資料的免費領取方式!

Java多執行緒知識點總結(思維導圖+源碼筆記),已整理成PDF版文件