Java併發程式設計實戰-王寶令-極客時間

王平發表於2019-03-19

極客時間出品的《Java併發程式設計實戰》課程由網寶令所寫,15年來一直大型網際網路公司從事Java開發。對於一個Java程式設計師而言,能否熟練掌握併發程式設計是判斷他優秀與否的重要標準之一。因為併發程式設計是Java語言中最為晦澀的知識點,它涉及作業系統、記憶體、CPU、程式語言等多方面的基礎能力,更為考驗一個程式設計師的內功。

那到底應該怎麼學習併發程式設計呢?Java SDK的併發工具包有很多,是要死記硬背每一個工具的優缺點和使用場景嗎?當然不是,想要學好併發程式設計,你需要從一個個單一的知識和技術中“跳出來”,高屋建瓴地看問題,並逐步建立自己的知識體系。

本專欄希望能夠幫助你建立起一張處理併發問題的全景圖,讓你能夠徹底理解併發問題的本質所在。同時,專欄還會深入介紹Java併發程式設計技術背後的邏輯關係以及應用場景,助你能夠遊刃有餘地遊走在這些技術之中。

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

Java併發程式設計實戰專欄價格

更多極客時間學習專欄:

iOS開發高手課程-戴銘

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章