1. 程式人生 > >Java併發程式設計學習總序

Java併發程式設計學習總序

這裡首先感嘆一下真的是時間跟不上技術更新的速度,大半年的時間零零散散的學了一點其他技術領域的皮毛,感覺最後還是迴歸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. 鎖的優化,重量鎖,偏向鎖,自旋鎖等等?
    1. 協程的概念?

上面列出了我在頭腦風暴中思考到的內容,在後面的文章中,針對這些問題,在自己解決後會給出各個問題的文章地址,如果不對的地方,希望大家糾正。