原创 併發編程(十):AQS之CyclicBarrier
一,底層AQS源碼分析:併發編程(四):AbstractQueuedSynchronizer源碼分析 二,CyclicBarrier介紹 1,線程處理 * CyclicBarrier 的字面意思就是循環屏障。在一組
原创 併發編程(二):Synchornized關鍵字
一,Synchorized語法演示 1,類方法演示;靜態類同步是對類對象加鎖,基於同一類對象的操作都會在阻塞隊列等待執行(通過自定義類加載器可以實現類的不同加載) package com.gupao.concurrent; /
原创 NIO(四):源碼分析_Register部分
註冊,就是將當前Channel註冊到Selector上,是NIO源碼的核心部分 1,Channel.register()部分 serverSocketChannel.register(selector, SelectionKey.OP_A
原创 併發編程(十三):阻塞隊列之ArrayBlockingQueue
一,關聯源碼鏈接 * 併發編程(四):AbstractQueuedSynchronizer源碼分析 * 併發編程(五):AQS之重入鎖ReentrantLock * 併發編程(七):AQS之Condition 二,A
原创 併發編程(六):AQS之讀寫鎖ReentrantReadWriteLock
一,AQS源碼博文:併發編程:AbstractQueuedSynchronizer源碼分析 二,ReentrantReadWriteLock讀寫鎖介紹 1,讀寫鎖介紹 ReentrantReadWriteLock 雖然與 Ree
原创 併發編程(五):AQS之重入鎖ReentrantLock
一,AQS源碼博文:併發編程:AbstractQueuedSynchronizer源碼分析 二,ReentrantLock重入鎖基本介紹 1,類圖 * 從圖中可以看到,ReentrantLock是頂層鎖接口Loc
原创 併發編程(十二):ConcurrentHashMap源碼分析
一,ConcurrentHashMap概述 1,ConcurrentHashMap * ConcurrentHashMap 和 HashMap 原理基本一致,就是在 HashMap 的基礎上增加了鎖處理,支持併發操作,在實現上比
原创 併發編程(十五):原子操作之AtomicInteger
一,Atomic 概述 1,原子類 * JUC中提供了一系列原子類,通過CAS在多線程環境下來保證原子操作,此處只對 AtomicInteger進行簡單分析 2,常用API * 同時,Atomic類提供了一系列API來保
原创 併發編程(四):AbstractQueuedSynchronizer源碼分析
一,AQS 1,AQS是JUC的核心功能組件,主要通過FIFO雙向鏈表特性對進行park()和unpark()操作來實現線程阻塞和線程喚醒。AQS主要提供了兩種功能,獨佔和共享。 * 獨佔鎖:獨佔鎖,每次只
原创 併發編程(七):AQS之Condition
一,底層AQS源碼分析:併發編程(四):AbstractQueuedSynchronizer源碼分析 二,Condition介紹 1,線程通信 * 在 synchronized 中,有分析過通過 wait()/
原创 併發編程(三):Volatile關鍵字
一,一段代碼引發可見性思考 1,代碼片段:從代碼可以看出,子線程會一直在循環中阻塞,當主線程已經修改flag的值爲true後,子線程並沒有對flag值做同步修改。當給flag加上volatile關鍵字修飾後,則子線程會獲取到最新的
原创 併發編程(十六):線程池
一,ThreadPoolExecutor 概述 1,線程池優勢 在Java中,如果每個請求到達就創建一個線程,創建線程和銷燬線程對系統資源的消耗都非常大,甚至可能比實際業務處理消耗的資源都大。同時,如果在JVM中創建太多的線程,也
原创 併發編程(九):AQS之Semaphore
一,底層AQS源碼分析:併發編程(四):AbstractQueuedSynchronizer源碼分析 二,Semaphore介紹 1,線程訪問控制 Semaphore 也就是我們常說的信號燈,通過初始化的信號量控制
原创 併發編程(八):AQS之CountDownLatch
一,底層AQS源碼分析:併發編程(四):AbstractQueuedSynchronizer源碼分析 二,CountDownLatch介紹 1,線程控制 * CountDownLatch 是一個同步工具類,允許一個
原创 併發編程(十四):阻塞隊列之LinkedBlockingQueue
一,關聯源碼鏈接 * 併發編程(四):AbstractQueuedSynchronizer源碼分析 * 併發編程(五):AQS之重入鎖ReentrantLock * 併發編程(七):AQS之Condition 二,