原创 06.JUC 鎖 - AQS - 共享模式

基本概念 AQS 的共享模式,表示 AQS 通過共享模式獲取/釋放鎖。該類對應的方法爲 acquireShared/acquireSharedInterruptibly/tryAcquireSharedNanos、 release

原创 03.JUC 集合 - BlockingQueue

概念 BlockingQueue,即阻塞隊列。它是一個支持兩個附加操作的隊列。這兩個附加的操作是: 在隊列爲空時,獲取元素的線程會等待隊列變爲非空。 當隊列滿時,存儲元素的線程會等待隊列可用。 阻塞隊列常用於生產者和消費者的場

原创 11.JUC 鎖 - Semaphore

基本概念 Semaphore 即計數信號量,它本身維護着一組permit(許可)。它本質是共享鎖,通過修改 permit 的值來調整可以被多少個線程同時持有。 當信號量中有可用的許可時,線程能獲取該許可;否則線程必須等待,直到有可

原创 Spring 配置使用 - AOP 通知參數

基本概念 若想要在通知方法獲取被通知方法的參數共有兩種方式:自動獲取、手動指定。下面來探究下這兩種方式的不同之處。 自動獲取參數 在介紹 AOP 的通知類型時有提到過環繞通知,該通知類型可以通過參數 ProceedingJoin

原创 09.JUC 鎖 - ReentrantReadWriteLock

基本概念 ReadWriteLock (讀寫鎖)內部維護着兩個鎖,一個用於寫操作,即寫鎖;一個用於讀操作,即讀鎖。 寫鎖,是獨佔鎖,即只能被一個線程持有。 讀鎖,是共享鎖,即可以同時被多個線程持有。 它的接口定義如下: pub

原创 03.JUC 鎖 - LockSupport

基本概念 LockSupport 可以用來實現線程的阻塞/喚醒。 每個使用 LockSupport 的線程都會與一個許可關聯: 若該許可有效,則線程可以繼續執行。 若該許可無效,則線程進入阻塞,等待許可證生效後再繼續執行。 關

原创 Spring 配置使用 - Bean 作用域

基本概念 Scope,也稱作用域,在 Spring IoC 容器是指其創建的 Bean 對象相對於其他 Bean 對象的請求可見範圍。 在 Spring IoC 容器中具有以下幾種作用域:基本作用域(request、prototy

原创 04.JUC 鎖- AQS - CLH 隊列

基本概念 首先我們需要知道兩個概念:AQS、CHL 隊列。 AQS:即 AbstractQueuedSynchronizer 類,它是整個 J.U.C 框架的核心所在。其中之一的功能就是將線程封裝在一個節點裏面,不同的節點通過連

原创 Spring 配置使用 - AOP 通知類型

基本概念 AOP,即 Aspect-Oriented Programming(面向切面編程),它其實是 OOP(Object-Oriented Programing,面向對象編程)思想的補充和完善。 在使用 Spring AOP

原创 12.JUC 鎖- CyclicBarrier

基本概念 CyclicBarrier ,也稱可重用屏障是一個線程同步工具,用於一組互相等待線程之間的協調,在到達某個臨界點之前,這些線程必須互相等待。通俗來講,表示 n 個線程,大家相互等待,只要有一個沒完成,所有人都得等着。 C

原创 07.JUC 鎖 - AQS - Condition

基本概念 Condition ,即條件(也稱爲條件隊列或條件變量)。它主要是爲了在 JUC 框架中提供和 Java 傳統的監視器風格的 wait、notify、notifyAll 方法類似的功能。 Condition 自己也維護了

原创 Spring 配置使用 - Bean 自動裝配

基本概念 自動裝配(autowire),意味着整個裝配過程是自動完成,而不再由我們手動去指定。 在 Spring 中自動裝配共有以下幾種方式: 名稱 說明 no 表示不使用自動裝配,此時必須手動指定依賴的 Bean

原创 Spring 配置使用 - Bean 生命週期

基本概念 Spring 中的 Bean 的生命週期,指的是 Bean 從創建到銷燬的過程。 下面來探究下幾個有關 Bean 生命週期配置的屬性。 lazy-init lazy-init 表示延遲加載 Bean,默認在 Sprin

原创 05.JUC 集合 - LinkedBlockingQueue

基本概念 LinkedBlockingQueue 是一個用鏈表實現的有界阻塞隊列。 LinkedBlockingQueue 按照先進先出的原則對元素進行排序。 LinkedBlockingQueue 採用了雙鎖、雙條件隊列來提高讀

原创 04.JUC 集合 - ArrayBlockingQueue

基本概念 ArrayBlockingQueue 是一個用數組實現的有界阻塞隊列。此隊列按照先進先出(FIFO)的原則對元素進行排序。 默認情況下不保證訪問者公平的訪問隊列,所謂公平訪問隊列是指阻塞的所有生產者線程或消費者線程,當隊