1. 程式人生 > >java高併發(一)導學

java高併發(一)導學

現在準備系統學習java高併發與多執行緒相關知識。

首先了解一下我們這一套知識的學習思路:

  • 併發與高併發相關概念
  • CPU多級快取
    • 快取一致性
    • 亂序執行優化
  • java記憶體模型
    • JMM規定、抽象結構
    • 同步操作與規則
  • 併發優勢與風險
  • 併發模擬
    • Postman、JMetter、Apache Bench、程式碼

併發及併發的執行緒安全處理

執行緒安全性

原子性、可見性、有序性、atomic包、CAS演算法、synchorized與Lock、volatile、happes-before

安全釋出物件

安全釋出方法、不可變物件、final關鍵字使用、不可變方法、執行緒不安全類與寫法

執行緒安全手段

堆疊封閉、ThreadLocal執行緒封閉、JDBC執行緒封閉、同步容器、併發容器、J.U.C

AQS等J.U.C元件

CountDownLatch、Semaphore、CyclicBarrier、ReentrantLock與鎖、Condition、FutureTask、Fork/Join框架、BlokingQueue

執行緒池(執行緒排程)

new Thread弊端、執行緒池的好處、ThreadPoolExecutor、Executor框架介面

額外補充

死鎖的產生與預防、多執行緒併發最佳實踐、Spring的執行緒安全、HashMap和ConcurrentHashMap深入講解。

高併發處理思路及手段

擴容

水平擴容、垂直擴容的探討

快取

Redis、Memcache、Guava Cache等的介紹與使用

佇列

Kafka、RabbitMQ、RocketMQ等佇列特性介紹及使用佇列的關注點

應用拆分

服務化Dubbo與微服務Spring Cloud介紹

限流

Guava RateLimiter的介紹與使用、常用限流演算法、自己實現分散式限流等

服務降級與服務熔斷

服務降級的多種選擇、Hystrix介紹及使用等

資料庫切庫、分庫、分表

介紹切庫、分表、支援多資料來源的原理及實現

高可用的一些手段

任務排程分散式elastic-job、主備curator的實現、監控報警