Bootstrap

Java并发JUC并发包

1. JUC主要包含以下几类:

2. 各模块介绍

  • 原子更新Java 从 JDK1.5 开始提供了 java.util.concurrent.atomic 包,方便程序员在多线程环 境下,无锁的进行原子操作。在 Atomic 包里一共有 12 个类,四种原子更新方式,分别是原子更新基本类型,原子更新 数组,原子更新引用和原子更新字段。

  • 锁和条件变量java.util.concurrent.locks 包下包含了同步器的框架 AbstractQueuedSynchronizer,基于 AQS 构建的 Lock 以及与 Lock 配合可以实现等待/通知模式的 ConditionJUC 下的大多数工具类用到了 Lock 和 Condition 来实现并发。

  • 线程池 涉及到的类比如:ExecutorExecutorsThreadPoolExector、 AbstractExecutorServiceFutureCallableScheduledThreadPoolExecutor等等。

  • 阻塞队列 涉及到的类比如:ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueLinkedBlockingDeque等等。

  • 并发容器 涉及到的类比如:ConcurrentHashMapCopyOnWriteArrayListConcurrentLinkedQueueCopyOnWriteArraySet等等。

  • 同步器 剩下的是一些在并发编程中时常会用到的工具类,主要用来协助线程同步。比如:CountDownLatchCyclicBarrierExchangerSemaphoreFutureTask 等等。在学习 JUC 之前我们需要了解  CASAQS 和 Unsafe,对于大部分初学并发编程的同学这几个概念容易在脑中混淆,所以先分别说说这几个概念。

 

3. 参考链接

https://mp.weixin.qq.com/s/hT7uUNoNULg7nng5ORVcTg

;