tag juc

標籤
貢獻3
65
11:03 AM · Nov 04 ,2025

@juc / 博客 RSS 訂閱

神秘傑克 - Java JUC CopyOnWriteArrayList 解析

CopyOnWriteArrayList 原理解析 介紹 在 Java 併發包中的併發 List 只有 CopyOnWriteArrayList,CopyOnWriteArrayList 是一個線程安全的 ArrayList,對其進行的修改操作都是在底層的一個複製的數組(快照)上進行的,也就是使用了寫時複製策略。 在 CopyOnWriteArrayList 的類圖中,每個 CopyOnWrit

List , 讀書筆記 , JAVA , 併發 , juc

收藏 評論

字節幺零二四 - 併發編程:Java線程狀態及其轉換

線程狀態 操作系統層面,線程分為五種狀態 創建狀態:線程正在被創建,包括申請資源、分配空間等操作。 就緒狀態:已獲得除 CPU 外的一切所需資源。 運行狀態:獲得 CPU 正在運行。 阻塞狀態:因等待某一事件而暫停運行,如等待 I/O 操作完成。 終止狀態:執行完畢,正在進行資源釋放等操作。 Java API 層面,線程分為六種狀態 NEW:語言層面創建了線程對象,未與操作

JAVA , juc , 併發編程

收藏 評論

jack - 20張圖帶你徹底瞭解ReentrantLock加鎖解鎖的原理_阿Q説代碼的技術博客

ReentrantLock加鎖流程 加鎖成功流程 其實就是把state改為1,然後設置ExclusiveOwnerThread為當前線程 ** 加鎖失敗流程** 進入tryAcquire邏輯,這是state已經是1,結果仍然失敗 接下來進入addWaiter邏輯,構造Node隊

, JAVA , Css , juc , 前端開發 , ReentrantLock , 後端 , HTML

收藏 評論

字節幺零二四 - 併發編程 | Java中AQS的基本實現原理及簡單使用

AbstractQueuedSynchronizer(AQS),是阻塞式鎖和同步器工具的框架。本文將初步介紹Java中AQS的基本原理,並基於AQS實現自定義阻塞式不可重入鎖,以此來演示AQS的使用。下期會以 ReentrantLock 為例,從源碼的層面介紹 AQS 的核心實現 acquire() 方法。 AQS 的目標 提供阻塞式獲取鎖 acquire() 和非阻塞式嘗試獲取鎖 tryAc

JAVA , juc , 併發編程 , 後端

收藏 評論

字節幺零二四 - 併發編程:Java常用線程調度方法及實現原理

本文將介紹Java常用線程調度方法及實現原理,包括sleep、wait¬ify、join、parkunpark。 線程方法 方法 説明 start() 用於啓動線程,讓線程進入就緒狀態 ; RUNNABLE 多次調用拋 IllegalThreadStateException 異常 run() 線程運行

JAVA , 併發 , juc

收藏 評論

字節幺零二四 - 源碼解讀 | Java中ReentrantLock的實現原理

ReentrantLock 依賴關係如下圖所示 非公平鎖實現原理 ReentrantLock 默認採用非公平鎖。 // ReentrantLock public ReentrantLock() { sync = new NonfairSync(); } 加鎖流程 ReentrantLock 的 lock 方法通過同步器的 lock 方法實現。 // ReentrantLock publi

JAVA , 併發 , juc , 併發編程

收藏 評論

字節幺零二四 - 源碼解讀 | Java中ReentrantReadWriteLock的實現原理

本文將介紹Java中ReentrantReadWriteLock的實現原理,從JDK源碼層面講解讀寫鎖的加鎖、釋放鎖的流程,最後對流程進行總結。 讀寫鎖概述 讀寫鎖 ReentrantReadWriteLock 的依賴關係如下圖所示。 讀寫鎖的基本使用如下 ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); Reentrant

源碼 , JAVA , juc , 併發編程

收藏 評論