亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

JUC 包介紹

1. 前言

java.util.concurrent (縮寫 JUC)并發編程包是專門為 Java 并發編程設計的,在正式介紹 Java 并發工具之前,本節先帶領大家認識 Java 并發工具包,對 Java 并發工具在組織形式上有一個直觀的認識。

本節先介紹 JUC 包的版本歷史,接著介紹 JUC 包的組織形式和內容結構。

在了解了 JUC 包之后,心中有了整體概念,當我們應用到并發工具時,就可以很快定位選擇最恰當的工具加以應用,或者能夠很快定位查閱相關工具的源代碼。

下面我們正式開始介紹。

2. JUC 包版本變遷

從 JDK1.5 開始,Java 官方在 rt.jar 核心 jar 包文件中增加了 java.util.concurrent 并發包,由 Doug Lea 大牛編寫實現,并在后繼的主要版本中不斷對其增強、優化。

在 JDK1.6 中,主要對基礎數據結構類進行了并發特性增強。

在 JDK1.7 中,主要對并發框架工具類進行了增強,新增了 ForkJoin 系列。

在 JDK1.8 中,主要對原子操作工具類進行了增強,增加了適用于更多場景的工具類。

3. JUC 包組織結構

JUC 包在形式上是如何組織的呢?看下面表格。

包路徑 主要內容 典型類型
java.util.concurrent 提供很多種最基本的并發工具類,包括對各類數據結構的并發封裝,并發框架主要接口 CountDownLatch,CyclicBarrier,Semaphore,Exchanger,Phaser,BlockingQueue,ConcurrentHashMap,ThreadPoolExecutor,ForkJoinPool
java.util.concurrent.atomic 提供各類原子操作工具類 AtomicInteger, DoubleAdder,LongAccumulator,AtomicReference
java.util.concurrent.locks 提供各類鎖工具 Lock,ReadWriteLock,ReentrantLock,StampedLock

了解了形式上的組織方式,我們接下來從內容角度看看 JUC 包的組織方式。

4. JUC 包內容結構

JUC 包提供了下面五大方面的內容:

鎖(locks)部分:提供適合各類場合的鎖工具;
原子變量(atomic)部分:原子變量類相關,是構建非阻塞算法的基礎;
并發框架(executor)部分:提供線程池相關類型;
并發容器(collections) 部分:提供一系列并發容器相關類型;
同步工具(tools)部分:提供相對獨立,且場景豐富的各類同步工具,如信號量、閉鎖、柵欄等功能;

下面我們通過思維導圖直觀展示 JUC 包內容的內在聯系。
圖片描述

5. 小結

通過本節介紹,大家對 java 并發工具包有了全局的直觀認識,本課程后繼主要針對上述表格中的典型類型展開介紹。