原创 Java集合(21)——併發集合(9)——阻塞隊列(2)——LinkedBlockingQueue源碼分析——待完成

1.概述 LinkedBlockingQueue:一個基於鏈表結構的阻塞隊列,此隊列按照FIFO(先進先出)排序元素,吞吐量通常要高於ArrayBlockingQueue       2.使用案例     3.源碼分析    

原创 Java集合(18)——併發集合(6)——ConcurrentLinkedQueue源碼分析

1.概述   2.使用   3.源碼剖析      

原创 Java多線程(12)——ThreadLocalRandom源碼剖析

目錄 1.爲什麼JUC下要新增ThreadLocalRandom? 2.ThreadLocalRandom 2.1 ThreadLocalRandom使用示例 2.2 ThreadLocalRandom的源碼分析 1.爲什麼JUC下要新增

原创 Mybatis基礎(1)——Mybatis入門案例和自定義Mybatis

目錄 1.Mybatis框架引入與概述 1.1 什麼是框架 1.2 三層架構 1.3 持久層技術解決方案 1.4 Mybatis框架概述 2.Mybatis的入門 2.1 Mybatis的環境搭建 (1)創建數據庫和示例表 (2)創建Ma

原创 Java多線程(11)——ThreadLocal源碼剖析

目錄 1.概述 2.圖解+源碼分析ThreadLocal原理 2.1 Thread類的兩個ThreadLocalMap類型的參數 2.2 ThreadLocalMap詳解 (1)成員變量與內部類 (2)構造方法 (3)獲取前一個/後一個索

原创 Java集合(6)——源碼剖析(3)——LinkedList源碼剖析

目錄 1.概述 2.源碼剖析 2.1 節點類(LinkedList內部類) ‘2.2 成員變量 2.3 構造函數 2.4 添加元素 (1)從鏈表尾部添加元素 (2)從鏈表頭部添加元素 (3)在指定節點的前後添加元素 (4)將集合插入鏈表

原创 Java多線程(26)——JUC——線程池excutors系列(1)——線程池概述、自己實現一個線程池、jdk中實現的線程池的架構

目錄 1.線程池概述 1.1 線程池產生的背景 1.2 什麼是線程池? 1.3 使用線程池的好處 1.4 線程池的主要特點 2.自己實現一個線程池 2.1 實現線程池的通用規則 2.2 實現代碼 3.線程池的架構 1.線程池概述 1.1

原创 Java多線程(6)——synchronized——synchronized的實現原理(2)

1.鎖的四種狀態 無鎖、 偏向鎖、 輕量級鎖、 重量級鎖 鎖降級 2.鎖優化技術 1.自旋鎖與自適應自旋鎖 2.鎖消除 3.鎖粗化  

原创 Java基礎——Object類和Objects工具類

目錄 1.Object類 1.1 常用方法 1.2 Object類中方法常見的問題 (1)爲什麼重寫equals時必須重寫hashCode方法? (2)wait和notify爲什麼定義在Object類當中?wait和notify或noti

原创 Java多線程(22)——JUC——tools系列(2)——CyclicBarrier——待完成

1.概述 CyclicBarrier的字面意思是可循環(Cyclic)使用的屏障(Barrier),它要做的事情是,讓一組線程到達一個屏障(也可以叫同步點)時被阻塞,直到最後一個線程到達屏障時,屏障纔會開門,所有被屏障攔截的線程纔會繼續幹

原创 Java集合(19)——併發集合(7)——阻塞隊列(0)——阻塞隊列的架構和方法剖析

目錄 1.什麼是阻塞隊列 2.爲什麼要使用阻塞隊列,有哪些好處? 3.阻塞隊列的架構和種類 4.BlockingQueue的核心方法 (1)拋出異常 (2)特殊值 (3)阻塞 (4)超時 1.什麼是阻塞隊列 阻塞隊列,顧名思義,首先它是一

原创 Java多線程(21)——JUC——tools系列(1)——CountDownLatch——待完成

1.概述 CountDownLatch有兩種典型用法: 1.讓一些線程阻塞直到另一些線程完成一系列操作後才被喚醒 將 CountDownLatch 的計數器初始化爲n :new CountDownLatch(n),每當一個任務線程執行完畢

原创 Java多線程(23)——JUC——tools系列(3)——Semaphore

1.概述 信號量主要用於兩個目的: 一個用於多個共享資源的互斥使用 當有多個共享資源(如停車位只有3個),多個線程(6輛車)都要進行搶奪,同一時間,只有3個線程能搶到鎖,其他線程阻塞等待,當有線程執行完釋放鎖,阻塞等待的線程再次搶奪鎖