Java併發程式設計學習總序
阿新 • • 發佈:2018-12-04
這裡首先感嘆一下真的是時間跟不上技術更新的速度,大半年的時間零零散散的學了一點其他技術領域的皮毛,感覺最後還是迴歸Java,安心搞懂Java再學習其他技術吧。程式設計師這個職業不是在學習的路上,就是在學習的路上,不過學習總歸是必要的,畢竟要做一名有追求的程式設計師。
今天這裡開始記錄一下Java併發的學習過程,由於Android開發這個領域對程式設計師的併發知識不需要太深,導致了本人在遇到併發問題時候,靠著sychronized大法一直苟活到現在,遇到問題執行緒池,sychronized開始做起,直至看了《Java併發程式設計實踐》發現自己過於淺薄,因此選擇寫個系列文章記錄一下學習到的內容。這裡不打算按照《Java併發程式設計實踐》的思路來寫,而是按照自己思考的過程來寫,我覺得通過提問的方式更能夠理清知識點,通過人云亦云的方式不適合我,所以自己思考的過程依次是如下方面:
- 1.什麼是執行緒?
- 2.為什麼要引入執行緒的概念?
- 3.在Java中如何使用執行緒?
- 4.引入執行緒會帶來什麼問題?JMM是如何解決這些問題的?快取一致性原則是啥?
- 5.Happen-Before原則是啥
- 6.可見性,原子性,有序性的意義?
- 7.sychronized關鍵字的作用?
- 8.volatile關鍵字的作用?
- 9.原子類的作用?AtomReference的作用?
- 10.CAS的概念?
- 11.併發容器的如何保證執行緒安全?
- 12.執行緒池的作用?
- 13.生產者消費者模型?
-
- 鎖的優化,重量鎖,偏向鎖,自旋鎖等等?
-
- 協程的概念?
上面列出了我在頭腦風暴中思考到的內容,在後面的文章中,針對這些問題,在自己解決後會給出各個問題的文章地址,如果不對的地方,希望大家糾正。
- 1,2,3問題文章:Java併發程式設計學習一:執行緒的概念以及使用
- 4,5,6問題文章:Java併發程式設計學習二:Java執行緒的帶來的問題與記憶體模型(JMM)
- 7,8問題文章:Java併發程式設計學習三:執行緒同步的關鍵字以及理解
- 9問題文章:Java併發程式設計學習四:CountDownLatch,CyclicBarrier,Semaphore以及原子類
- 10,14問題文章:Java併發程式設計學習五:Synchronized的鎖優化以及CAS