極客時間出品的《Java併發程式設計實戰》課程由網寶令所寫,15年來一直大型網際網路公司從事Java開發。對於一個Java程式設計師而言,能否熟練掌握併發程式設計是判斷他優秀與否的重要標準之一。因為併發程式設計是Java語言中最為晦澀的知識點,它涉及作業系統、記憶體、CPU、程式語言等多方面的基礎能力,更為考驗一個程式設計師的內功。
那到底應該怎麼學習併發程式設計呢?Java SDK的併發工具包有很多,是要死記硬背每一個工具的優缺點和使用場景嗎?當然不是,想要學好併發程式設計,你需要從一個個單一的知識和技術中“跳出來”,高屋建瓴地看問題,並逐步建立自己的知識體系。
本專欄希望能夠幫助你建立起一張處理併發問題的全景圖,讓你能夠徹底理解併發問題的本質所在。同時,專欄還會深入介紹Java併發程式設計技術背後的邏輯關係以及應用場景,助你能夠遊刃有餘地遊走在這些技術之中。
Java併發程式設計實戰作者簡介
王寶令,資深架構師,畢業於東北大學,目前在某大型網際網路公司從事電商架構相關的設計工作。王寶令曾主導研發了支援高併發處理能力的API閘道器、高效能資料庫連線池以及海量資料歸檔平臺。
畢業至今,王寶令已前前後後寫了15年的程式,曾任職於用友、金蝶、惠普等公司。最近6年他一直從事Java開發平臺和基礎中介軟體的設計開發工作。
Java併發程式設計實戰專欄模組
專欄共45期,分為5大模組。
1.Java併發理論基礎
這個模組主要介紹併發程式設計相關的概念和理論。但不會死板地堆疊結論,而是關注具體概念和理論的產生背景,挖掘它們背後的邏輯關係,發現核心矛盾並尋找解決方案。比如,深度認識Java記憶體模型、死鎖產生的原因和解決方案、執行緒間的協作機制,等等。
2.Java併發工具類
這個模組主要探討Java SDK裡的併發工具類。這些工具類大部分都是基於管程實現的,所以這裡會首先介紹隱藏在併發包中的管程及其使用。緊接著還會為你詳細解讀訊號量、讀寫鎖、CountDownLatch和CyclicBarrier,以及併發程式設計的三個核心問題“分工”“同步”“互斥”相關的技術內容。
3.Java併發設計模式
併發設計模式是解決併發問題的最佳實踐。這個模組將會介紹9種常見的設計模式。其中,前3種設計模式的核心思想是避免共享變數,從而避免併發問題;後面6種設計模式則都屬於典型的分工模式。
4.Java併發程式設計實戰案例分析
這個模組著重分析4個經典的開源框架是如何處理併發問題的,包括高效能限流器Guava RateLimiter、高效能網路應用框架Netty、高效能佇列Disruptor、高效能資料庫連線池HiKariCP,希望能夠幫你融會貫通相關知識點,並從實戰場景中思考問題的最優解。
5.其他併發模型
併發問題是一個通用問題,Java語言解決併發問題採用的是共享記憶體模型,但這個模型並不是解決併發問題唯一的模型。這個模組將會介紹共享記憶體模型之外的模型,主要有Actor模型、軟體事務記憶體、協程和CSP模型。
Java併發程式設計實戰專欄詳細目錄
1)可見性、原子性和有序性問題:併發程式設計Bug的源頭
2)Java記憶體模型:看Java如何解決可見性和有序性問題
3)互斥鎖(上):解決原子性問題
4)互斥鎖(下):如何用一把鎖保護多個資源?
5)一不小心就死鎖了,怎麼辦?
6)用“等待-通知“機制優化迴圈等待
7)安全性、活躍性以及效能問題
8)管程:併發程式設計的萬能鑰匙
9)Java執行緒(上):Java執行緒的生命週期
10)Java執行緒(中):建立多少執行緒才是合適的?
11)Java執行緒(下):為什麼區域性變數是執行緒安全的?
12)如何用物件導向思想寫好併發程式?
13)理論基礎模組熱點問題答疑
14)Lock和Conditiion(上):隱藏在併發中的管程
15)Lock和Ccondition(下):Dubbo如何用管程實現非同步轉同步?
16)Semaphore:如何快速實現一個限流器?
17)ReadWriteLock:如何快速實現一個完備的快取?
18)StampedLock:有沒有比讀寫鎖更快的鎖?
19)CountDownLatch和CyclicBarrier:如何讓多執行緒步調一致?
20)併發容器:都有哪些坑需要我們填?
21)原子類:無鎖工具類的典範
22)Executor與執行緒池:如何建立正確的執行緒池?
23)Future:如何用多執行緒實現最優的“燒水泡茶”程式?
24)CompletetableFuture:非同步程式設計沒那麼難
25)CompletionService:如何批量執行非同步任務?
26)Fork/Join:單機版的MapReduce
27)併發工具類模組熱點問題答疑
28)Immutability模式:如何利用不變性解決併發問題?
29)Copy-on-Write:不是延時策略的COW
30)執行緒本地儲存模式:沒有共享,就沒有傷害
31)Guarded Suspension模式:等待喚醒機制的規範實現
32)Balking模式:再談執行緒安全的單例模式
33)Thread-Per-Message模式:最簡單實用的分工方法
34)Worker Thread模式:如何避免重複建立執行緒?
35)兩階段終止模式:如何優雅地終止執行緒?
36)生產者-消費者模式:用流水線思想提高效率
37)設計模式模組熱點問題答疑
38)案例分析(一):高效能限流器Guava RateLimiter
39)案例分析(二):高效能網路應用框架Netty
40)案例分析(三):高效能佇列Disruptor
41)案例分析(四):高效能資料庫連線池HiKariCP
42)Actor模型:物件導向原生的併發模型
43)軟體事務記憶體:借鑑資料庫的併發經驗
44)協程:更輕量級的執行緒
45)CSP模型:Golang的主力隊員
Java併發程式設計實戰適合學習人群:
適合有Java基礎需要進階的人學習
Java併發程式設計實戰出品方:極客時間,訂閱後可在極客時間APP、極客時間小程式學習。
學習形式為圖文 + 音訊,共計45期,定價99元
訂閱價格:
價格99元,掃我提供的二維碼報名我們額外還再各得12元。報名後記得加我微信:dismissmwp 備註:返現。我好給你返12元錢哈哈。也可以直接複製下面連結報名:http://gk.link/a/102Dh
更多極客時間學習專欄:
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***