多執行緒大家在初學的時候,對這個知識點應該有不少的疑惑的,我認為主要原因有兩個:
- 多執行緒在初學的時候不太好學,并且一般寫專案的時候也很少用得上(至少在初學階段時寫的專案基本不需要自己創建執行緒),
- 多執行緒的知識點在面試經常考,多執行緒所涉及的知識點非常多,難度也不低,
這就會給人帶來一種感覺「這破玩意涉及的東西是真的廣,平時也不怎么用,怎么面試就偏偏愛問這個鬼東西」
不多BB,我要開始了,
多執行緒知識重要嗎?
我們日常「關于多執行緒的代碼」寫得不多,但是我們寫的程式代碼的的確確是在多執行緒的環境下跑的,
如果我們不懂多執行緒知識,很直接的一個現實:
從開頭的思維導圖里我們可以發現多執行緒的知識點還是很多的,我們起碼得知道:
- 執行緒和行程的區別
- Thead類的常見方法
- 可以用什么手段來解決執行緒安全性問題
- Synchronized和Lock鎖的區別
- 什么是AQS、ReentrantLock和ReentrantReadWriteLock鎖
- JDK自帶的執行緒池有哪幾個,執行緒池的構造方法重要的引數
- 什么是死鎖,怎么避免死鎖
- CountDownLatch、CyclicBarrier、Semaphore是什么?
- Atomic包下的常見子類,什么是CAS,CAS會有什么問題
- ThreadLocal是什么?
- …..//
雖然在作業中未必會全部用得上,但如果專案真的用到了,我們如果學過了可能就可以很快地理解當時為什么要這樣設計(我覺得去挖掘程序還是挺有意思的),
「我可能不用,但你必須要有」
這個道理也很容易懂:「我買電腦的時候,雖然我是木耳聽不出什么音質出來,但你音質就是得好」,企業招人的時候也一樣「你在作業的時候未必要寫,但你必須要會」
至少在我看來,從求職的角度出發,多執行緒是很重要的,之前我還整理過在我當時校招經常被問到的多執行緒面試題目:
- 多執行緒了解多少啊?使用多執行緒會有什么問題?你是怎么理解“執行緒安全”的?
- 如果我現在想要某個操作等待執行緒結束之后才執行,有什么方法可以實作?為什么要用CountDownLatch?CountDownLatch的底層是什么?(引出AQS)
- synchronized關鍵字來說一下,它的用途是什么?synchronized底層的原理是什么?
- 執行緒安全的容器有哪些?(著重于ConcurrentHashMap、CopyWriteOnArrayList與其他非執行緒安全容器的區別以及它們的具體實作)
- ThreadLocal你了解過嗎?主要是用來干什么的?具體的原始碼實作原理來說一下吧
- 產生死鎖的條件是什么?我們可以如何避免死鎖?(可延伸到作業系統層面上的死鎖)
- synchronized鎖和ReentrantLock鎖有什么區別呀?
- 執行緒池你應該也看過吧,來說說為什么要用執行緒池,JDK默認實作了幾個執行緒池,分別有xxx(自然地ThreadPoolExecutor建構式的常用幾個引數你也得一起說出來)
- …
轉發+關注,然后添加VX(tkzl6666) 即可獲得《Java多執行緒知識點總結》PDF檔案資料的免費領取方式!
一、什么是多執行緒
初識多執行緒
- 1.1介紹行程
- 1.2回到執行緒
- 1.3行程與執行緒
- 1.4并行與并發
- 1.5Java實作多執行緒
- 1.6Java實作多執行緒需要注意的細節
二、Thread類決議
Thread執行緒類API
- 1.2守護執行緒
- 1.3優先級執行緒
- 1.4執行緒生命周期
三、使用多執行緒需要注意的問題
- 1、使用多執行緒遇到的問題
- 2、物件的發布與逸出
- 3、解決多執行緒遇到的問題
- 4、多執行緒需要注意的事 -總結
四、synchronized鎖和lock鎖
- 1、synchronized鎖
- 2、Lock顯式鎖
- 3、Java鎖簡單總結
五、AQS
- 1、AQS是什么?
- 2、簡單看看AQS
六、ReentrantLock和ReentrantReadWriteLock
- 1、ReentrantLock鎖
- 2、ReentrantReadWriteLock
- 3、最后
七、執行緒池
- 1、執行緒池簡介
- 2、JDK提供的執行緒池API
- 3、ThreadPoolExecutor詳解
- 4、execute執行方法
- 5、執行緒池關閉
八、死鎖
- 1、死鎖講解
- 2、避免死鎖的方法
- 3、死鎖總結
九、執行緒常用的工具類
- 1、CountDownLatch
- 2、CyclicBarrier
- 3、Semaphore
- 4、總結
十、Atomic
- 1、基礎鋪墊
- 2、原子變數類簡單介紹
十一、ThreadLocal
- 1、什么是ThreadLocal
- 2、為什么要學習ThreadLocal?
- 3、ThreadLocal實作的原理
- 4、避免記憶體泄露
- 5、總結
放干貨
PDF的內容非常非常長,干貨非常非常的硬,有興趣的讀者可以瀏覽一波,共有「129」頁
轉發+關注,然后添加VX(tkzl6666)即可獲得《Java多執行緒知識點總結》PDF檔案資料的免費領取方式!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/122918.html
標籤:其他
