原创 redis5.0源碼淺析5-跳躍表skiplist

1.skiplist介紹 定義:跳躍表是一個有序鏈表,其中每個節點包含不定數量的鏈接,節點中的第i個鏈接構成的單向鏈表跳過含有少於i個鏈接的節點。 跳躍表支持平均O(logN),最壞O(N)複雜度的節點查找,大部分情況下,跳躍表的效率可以

原创 JUC源碼分析-重入鎖-Reetrantlock

概述 Reetrantlock是Java代碼層面提供的鎖機制,可做爲Synchronized(jvm內置)的替代物,和Synchronized一樣都是可重入的。 與Synchronized相比較而言,ReentrantLock有以下優勢:

原创 JUC源碼分析-ScheduledThreadPoolExecutor

概述 ScheduledThreadPoolExecutor 預定任務線程池,用於執行延遲和週期性任務。     核心屬性和數據結構 //是否應該廢棄週期任務 當關閉時 private volatile boolean continueE

原创 JUC源碼分析-容器-LinkedBlockingQueue和ArrayBlockingQueue

BlockingQueue 先進先出,出隊列即移除。可用來實現消費者模式   BlockingQueue的核心方法: 放入數據:   offer(anObject):表示如果可能的話,將anObject加到BlockingQueue裏,即

原创 JUC源碼分析-容器-List和set

CopyOnWriteArrayList 寫加鎖 ,讀不加鎖。 CopyOnWrite 讀寫分離的思想, 修改的時候copy出一個副本,讀還是使用原內存,修改期間不影響讀,當修改完成,副本替換原來的內存。 適用於讀多寫少的場景。 聊聊併發

原创 netty源碼分析7-NioEventLoop-run方法疑難點

本文分享內容如下   select()和空輪詢bug解決分析 EventLoop 中對selectKeys的改造 wakeup分析 select()和空輪詢bug解決分析 當select空輪詢( selector.select(timeo

原创 netty源碼分析6-NioEventLoop啓動和run方法

分享內容如下 select啓動跟蹤 定時任務機制分析 NioEventLoopIO輪詢方法分析 select啓動跟蹤 NioEventLoop中有循環select實現,是什麼時候被調用的? 循環select由run方法實現,調用鏈如下圖

原创 netty源碼分析5-NioEventLoopGroup

分享內容如下: NioEventLoopGroup初始化分析 NioEventLoopGroup父子類分析 parentGroup與childGroup區別 1.NioEventLoopGroup初始化分析 從接口類圖上看 EventLo

原创 netty源碼分析9-Unsafe

本文分享以下內容 Unsafe概況 AbstractUnsafe 分析 AbstractNioUnsafe分析 NioByteUnsafe分析 NioMessageUnsafe分析 Unsafe概況   unsafe是Channel的內部

原创 netty源碼分析11-ByteBuf

本文分享內容如下 AbstractByteBuf分析 readXXX系列方法 讀寫方法分析 ensureWritable分析 capacity分析 setBytes(int, byte[], int, int) 分析 AbstractR

原创 JUC源碼分析-輔助類-CountDownLatch,Semaphore,CyclicBarrier,Exchanger

本文分析併發輔助類 CountDownLatch,Semaphore,CyclicBarrier,Exchanger CountDownLatch 同步輔助類 實現一個線程 等待其他1~N個線程執行完成,再繼續執行其他代碼。 構造方法 跟

原创 JUC源碼分析-Reetrantlock-Condition

概述 Condition是Reerantlock 實現了 wait- notify 模式的類 synchronized鎖 wait- notify 模式 實現的 是 Object.wait(),Object.notify()。 so 重入

原创 JUC源碼分析-容器-SynchronousQueue

概述 沒有容量的阻塞隊列,它的每個插入操作都要等待其他線程相應的移除操作,反之亦然。 SynchronousQueue(後面稱SQ)內部沒有容量,所以不能通過peek方法獲取頭部元素;也不能單獨插入元素,可以簡單理解爲它的插入和移除是“一

原创 JUC源碼分析-容器-PriorityBlockingQueue

概述 PriorityBlockingQueue:二叉堆結構優先級阻塞隊列,FIFO,通過顯式的lock鎖保證線程安全,是一個線程安全的BlockingQueue,加入隊列的數據實例按照指定優先級升序排列,這個規則通過賦值 實現了Comp

原创 JUC源碼分析-容器-簡介

list和set CopyOnWriteArrayList:相當於線程安全的ArrayList,通過顯式鎖 ReentrantLock 實現線程安全。允許存儲null值。 CopyOnWriteArraySet:相當於線程安全的HashS