【轉(zhuǎn)載】Java并發(fā)編程系列01 | 開篇獲獎(jiǎng)感言

為什么要學(xué)并發(fā)編程

我曾聽一個(gè)從事15年開發(fā)工作的技術(shù)人員說過,他剛工作時(shí)的并發(fā)編程第一原則就是不要寫并發(fā)程序。這個(gè)不寫并發(fā)程序的原則行的通的背景是那個(gè)時(shí)候基本都是單核處理器,系統(tǒng)并發(fā)量很低,借助數(shù)據(jù)庫和類似Tomcat這種中間件就可以解決并發(fā)問題。
如今硬件的驅(qū)動(dòng)和互聯(lián)網(wǎng)行業(yè)的飛速發(fā)展,64核的處理器已經(jīng)是很常見了,大型互聯(lián)廠商的系統(tǒng)并發(fā)量輕松過百萬,傳統(tǒng)的中間件和數(shù)據(jù)庫肯定是不能幫我們遮風(fēng)避雨了,我們只能通過并發(fā)編程來解決這些問題。
所以,并發(fā)編程已經(jīng)成為一項(xiàng)必備技能。
并發(fā)編程是Java語言的重要特性之一,它能使復(fù)雜的代碼變得更簡單,從而極大的簡化復(fù)雜系統(tǒng)的開發(fā)。
并發(fā)編程可以充分發(fā)揮多處理器系統(tǒng)的強(qiáng)大計(jì)算能力,隨著處理器數(shù)量的持續(xù)增長,如何高效的并發(fā)變得越來越重要。
說白了,對(duì)我們程序員來說,并發(fā)編程在日常工作中是都要用到的,就算目前沒用到將來也要用到,工作中用不到面試也要用到。
如何學(xué)習(xí)并發(fā)編程

并發(fā)編程的學(xué)習(xí)確實(shí)有難度

《Java并發(fā)編程實(shí)戰(zhàn)》中這么說,“編寫正確的程序難,編寫正確的并發(fā)程序更難”。
并發(fā)編程中涉及操作系統(tǒng)、CPU、內(nèi)存等等多方面的知識(shí),如果某一塊知識(shí)缺乏,理解起來自然會(huì)有困難。由于涉及知識(shí)較多,學(xué)習(xí)起來很容易摸不著頭緒,學(xué)習(xí)了一個(gè)點(diǎn)但是不能跟其他點(diǎn)聯(lián)系起來。
理清脈絡(luò),系統(tǒng)學(xué)習(xí)

并發(fā)編程的知識(shí)比較零散,相關(guān)度很低,總是給人一種感覺,“學(xué)習(xí)了很多相關(guān)知識(shí),可還是沒搞懂是怎么回事”。那么,接下來就由我跟你一起來理一理Java并發(fā)編程的脈絡(luò)。
1.并發(fā)理論:并發(fā)編程要解決的三大問題;介紹可見性與有序性問題的根源重排序;學(xué)習(xí)Java內(nèi)存模型(JMM),理解JMM如何解決這些問題以實(shí)現(xiàn)并發(fā)編程的。
2.并發(fā)關(guān)鍵字:深入volatile、synchronized、final關(guān)鍵字的作用,都解決了什么問題,以及其實(shí)現(xiàn)原理。
3.并發(fā)基礎(chǔ):并發(fā)編程中用到的一些基本概念,如:死鎖、饑餓與公平等;線程的創(chuàng)建、運(yùn)行、調(diào)度。
4.CAS原子操作:并發(fā)編程的基礎(chǔ)與核心CAS的實(shí)現(xiàn)原理,以及Java中的CAS原子操作。
5.Lock體系:JDK的Lock對(duì)于synchronized有哪些優(yōu)勢;Lock如何通過AQS與LockSupport工具實(shí)現(xiàn)的;Lock的使用。
6.并發(fā)工具:介紹java.util.concurrent包下提供的并發(fā)工具倒計(jì)時(shí)器CountDownLatch、循環(huán)柵欄CyclicBarrier、資源訪問控制Semaphore、數(shù)據(jù)交換Exchanger的用法,并深入分析實(shí)現(xiàn)原理。
7.并發(fā)容器:介紹java.util.concurrent包下提供的并發(fā)容器ConcurrentHashMap、CopyOnWriteArrayList、ConcurrentLinkedQueue、ThreadLocal、及阻塞隊(duì)列的用法,并深入分析實(shí)現(xiàn)原理。
8.線程池(Executor體系):介紹線程池ThreadPoolExecutor和ScheduledThreadPoolExecutor的用法,分析線程池執(zhí)行流程和原理。


微信圖片_20201221192133.jpg

轉(zhuǎn)自 公眾號(hào) <java進(jìn)階架構(gòu)師>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容