原创 JAVA併發編程-3-原子操作CAS和原子類

帶你認識JAVA中的原子操作一、CAS原理1、爲什麼要有CAS2、通過硬件指令集來保證3、什麼是CAS二、CAS的問題1、ABA問題2、開銷問題3、只能保證一個共享變量的原子操作三、原子類的使用1、AtomicInteger2、A

原创 JAVA併發編程-2-線程併發工具類

JAVA併發編程-2-線程併發工具類一、Fork/Join1、分而治之與工作密取2、使用標準範式3、Fork/Join的同步用法4、Fork/Join的異步用法二、CountDownLatch三、CyclicBarrier四、Se

原创 JAVA併發編程-10-JMM和底層實現原理

JMM和底層實現原理一、JAVA內存模型JMM1、併發編程領域的關鍵問題2、現代計算機物理上的內存模型3、Java內存模型4、JVM對Java內存模型的實現5、Java內存模型帶來的問題二、Java內存模型中的重排序1、重排序的類

原创 JAVA併發編程-9-併發安全

線程併發安全的理解一、類的線程安全的定義二、怎麼才能做到類的線程安全1、棧封閉2、無狀態3、讓類不可變4、volatile5、加鎖和CAS6、安全的發佈7、TheadLocal三、線程不安全會產生的問題1、死鎖2、活鎖3、線程飢餓

原创 JAVA併發編程-8-線程池

線程池的使用一、爲什麼要使用線程池二、手動實現一個線程池三、JDK中的線程池和工作機制1、線程池的創建及參數2、提交任務的方法3、關閉線程池的方法4、工作機制四、合理配置線程池五、預定義的線程池六、Executor框架 上一篇看這

原创 JAVA併發編程-7-併發容器

常用的併發容器介紹一、ConcurrentSkipListMap 和 ConcurrentSkipListSet二、ConcurrentLinkedQueue三、寫時複製容器 CopyOnWrite四、阻塞隊列1、概念2、生產者

原创 JAVA併發編程-6-ConcurrentHashMap

非常重要的一個併發集合-ConcurrentHashMap一、線程安全的Map二、jdk1.7中的實現1、數據結構2、初始化過程2、快速定位元素3、get()方法4、put()方法5、擴容操作6、size()方法7、弱一致性三、j

原创 JAVA併發編程-5-AQS的實現原理

學習併發編程的一座高山-AQS一、LockSupport工具的使用二、初識AQS1、什麼是AQS2、模版方法設計模式3、AQS中的方法4、實現一個獨佔鎖三、深入AQS的結構和源碼1、AQS中的數據結構---節點和同步隊列2、節點N

原创 JAVA併發編程-4-顯式鎖Lock

JAVA中的顯式鎖一、Lock接口及其核心方法二、可重入鎖ReentrantLock三、鎖的公平和非公平四、讀寫鎖ReadWriteLock五、等待通知機制Condition 上一章看這裏:JAVA併發編程-3-原子操作CAS和原