天天看點

【JAVA 網絡程式設計系列】Netty -- 鎖的優化【JAVA 網絡程式設計系列】Netty -- 鎖的優化

【JAVA 網絡程式設計系列】Netty -- 鎖的優化

【1】注意鎖的對象和範圍 -- 減少粒度

【JAVA 網絡程式設計系列】Netty -- 鎖的優化【JAVA 網絡程式設計系列】Netty -- 鎖的優化

【2】注意鎖對象的大小 -- 減少鎖記憶體空間占用

【JAVA 網絡程式設計系列】Netty -- 鎖的優化【JAVA 網絡程式設計系列】Netty -- 鎖的優化

【3】注意鎖的速度 -- 提高并發性

【JAVA 網絡程式設計系列】Netty -- 鎖的優化【JAVA 網絡程式設計系列】Netty -- 鎖的優化

【4】注意根據場景選擇并發包 -- 因需而變

使用 CountDownLatch 替換 Object.wait/notify 簡化程式設計
使用 jctools 包的 MPSC(多生産者單消費者)隊列替換 Jdk 的 MPMC(多生産者多消費者)隊列(如 LinkedBlockingQueue)
           

【5】注意盡量避免鎖的使用

【JAVA 網絡程式設計系列】Netty -- 鎖的優化【JAVA 網絡程式設計系列】Netty -- 鎖的優化

參考緻謝

本部落格為部落客的學習實踐總結,并參考了衆多部落客的博文,在此表示感謝,部落客若有不足之處,請批評指正。

【1】Netty源碼剖析與實戰

【2】多線程程式設計:并發加/減操作優化, LongAdder原理,與AtomicLong比較

【3】Java多線程進階(十七)—— J.U.C之atomic架構:LongAdder

【4】java:用CountDownLatch.await替代Object.wait實作線程阻塞/喚醒

【5】Java多線程進階(十八)—— J.U.C之synchronizer架構:CountDownLatch

繼續閱讀