java高併發(一)導學
阿新 • • 發佈:2019-08-17
現在準備系統學習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的實現、監控報警