JUC概述

什么是juc

juc是java中java.util.concurrent包的簡稱.它位于jdk的rt.jar中,是jdk的核心工具包之一。從字面上來理解就是java并發(fā)工具包。
其主要內(nèi)容包含3個部分atomic包、locks包以直接在該包下的直接接口和類。其主要功能如下

  • atomic 支持原子操作類相關代碼。
  • locksjava中鎖相關代碼寥袭。
  • 直接接口和類是其他并發(fā)容器相關代碼路捧。

atomic

這個包提供了一系列原子類,這些類是通過CAS來提供原子操作支持的,可以保證多線程環(huán)境下纠永,當某個線程在執(zhí)行atomic的方法時鬓长,不會被其他線程打斷,而別的線程就像自旋鎖一樣尝江,一直等到該方法執(zhí)行完成涉波,才由JVM從等待隊列中選擇一個線程執(zhí)行。Atomic類在軟件層面上是非阻塞的炭序,它的原子性其實是在硬件層面上借助相關的指令來保證的啤覆。

Atomic包中的類可以分成5組:
原子更新基本類型

  • AtomicBoolean
  • AtomicInteger
  • AtomicLong

原子更新數(shù)組類型

  • AtomicIntegerArray
  • AtomicLongArray
  • AtomicReferenceArray

原子更新字段類型

  • AtomicIntegerFieldUpdater
  • AtomicLongFieldUpdater
  • AtomicStampedReference

原子更新引用類型

  • AtomicReference
  • AtomicReferenceFieldUpdater
  • AtomicMarkableReference

累加器

  • DoubleAccumulator
  • LongAccumulator
  • DoubleAdder
  • LongAdder
  • Striped64

locks

這個包主要提供了很多java中的鎖.例如:ReentrantLock,ReentrantReadWriteLock...等等.這些類就是通過AQS來實現(xiàn)的.locks包里面最重要的就是提供了LockReadWrite兩種接口,提供兩種類型的鎖惭聂。這兩個接口也就形成了整個locks包的基石窗声。

Lock包內(nèi)的接口和類列表如下

  • AbstractOwnableSynchronizer
  • AbstractQueuedLongSynchronizer
  • AbstractQueuedSynchronizer
  • Condition
  • Lock
  • LockSupport
  • ReadWriteLock
  • ReentrantLock
  • ReentrantReadWriteLock
  • StampedLock

其他

其他直接在juc包下的類也分為以這么幾種類型:集合類executors類辜纲、工具類笨觅、獨立類異常類

集合類

  • interface Delayed
  • interface TransferQueue
  • interface BlockingDeque
  • interface BlockingQueue
  • class DelayQueue
  • class ConcurrentLinkedDeque
  • class ConcurrentLinkedQueue
  • class LinkedBlockingDeque
  • class LinkedBlockingQueue
  • class LinkedTransferQueue
  • class ArrayBlockingQueue
  • class PriorityBlockingQueue
  • class SynchronousQueue
  • interface ConcurrentMap
  • interface ConcurrentNavigableMap
  • class ConcurrentHashMap
  • class ConcurrentSkipListMap
  • class ConcurrentSkipListSet
  • class CopyOnWriteArrayList
  • class CopyOnWriteArraySet

executors類

  • interface Future
  • interface RunnableFuture
  • interface ScheduledFuture
  • interface RunnableScheduledFuture
  • class FutureTask
  • class RecursiveTaskabstract
  • class RecursiveAction
  • abstract class ForkJoinTask
  • class ForkJoinPool
  • class ForkJoinWorkerThread
  • class CompletableFuture
  • class CountedCompleter
  • interface CompletionStage
  • interface CompletionService
  • class ExecutorCompletionService
  • interface Executor
  • interface ExecutorService
  • interface ScheduledExecutorService
  • abstract class AbstractExecutorService
  • class ScheduledThreadPoolExecutor
  • class ThreadPoolExecutor

工具類

  • class Semaphore
  • class CountDownLatch
  • class CyclicBarrier
  • class Exchanger
  • class Executors

獨立類

  • interface Callable
  • interface RejectedExecutionHandler
  • enum TimeUnit
  • interface ThreadFactory
  • class Phaser
  • class ThreadLocalRandom

異常類

  • class RejectedExecutionException
  • class BrokenBarrierException
  • class CancellationExceptionclass CompletionException
  • class ExecutionException
  • class TimeoutException
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耕腾,一起剝皮案震驚了整個濱河市见剩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扫俺,老刑警劉巖苍苞,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異狼纬,居然都是意外死亡羹呵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門疗琉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冈欢,“玉大人,你說我怎么就攤上這事没炒√伟” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵送火,是天一觀的道長。 經(jīng)常有香客問我先匪,道長种吸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任呀非,我火速辦了婚禮坚俗,結果婚禮上镜盯,老公的妹妹穿的比我還像新娘。我一直安慰自己猖败,他們只是感情好速缆,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恩闻,像睡著了一般艺糜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幢尚,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天破停,我揣著相機與錄音,去河邊找鬼尉剩。 笑死真慢,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的理茎。 我是一名探鬼主播黑界,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼皂林!你這毒婦竟也來了朗鸠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤式撼,失蹤者是張志新(化名)和其女友劉穎童社,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體著隆,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡扰楼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了美浦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弦赖。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖浦辨,靈堂內(nèi)的尸體忽然破棺而出蹬竖,到底是詐尸還是另有隱情,我是刑警寧澤流酬,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布币厕,位于F島的核電站,受9級特大地震影響芽腾,放射性物質(zhì)發(fā)生泄漏旦装。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一摊滔、第九天 我趴在偏房一處隱蔽的房頂上張望阴绢。 院中可真熱鬧店乐,春花似錦、人聲如沸呻袭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左电。三九已至廉侧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間券腔,已是汗流浹背伏穆。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纷纫,地道東北人枕扫。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像辱魁,于是被迫代替她去往敵國和親烟瞧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Java JUC總結 目錄 一染簇、Java JUC簡介 在 Java 5.0 提供了 java.util.concu...
    叨唧唧的閱讀 488評論 0 0
  • 1.JUC JUC:java.util.concurrent 在并發(fā)編程中使用的工具類 java.util.con...
    夜小十五天閱讀 310評論 0 0
  • 1参滴、什么是JUC JUC:就是我們Java原生的并發(fā)包,和一些常用的工具類锻弓! java.util.concurre...
    成與敗的一點一滴閱讀 451評論 0 0
  • 知識點: 線程生命周期(新建砾赔、運行、阻塞青灼、等待(一直等待)暴心、超時等待(超時取消等待)、終止)杂拨; Synchroni...
    CJ21閱讀 1,734評論 1 21
  • JUC——檢視閱讀 參考資料 JUC知識圖參考 JUC框架學習順序參考 J.U.C學習總結參考专普,簡潔直觀 易百并發(fā)...
    卡斯特梅的雨傘閱讀 347評論 0 1