JUC概述

什么是juc

juc是java中java.util.concurrent包的简称.它位于jdk的rt.jar中,是jdk的核心工具包之一。从字面上来理解就是java并发工具包。
其主要内容包含3个部分atomic包、locks包以直接在该包下的直接接口和类。其主要功能如下

  • atomic 支持原子操作类相关代码。
  • locksjava中锁相关代码。
  • 直接接口和类是其他并发容器相关代码。

atomic

这个包提供了一系列原子类,这些类是通过CAS来提供原子操作支持的,可以保证多线程环境下,当某个线程在执行atomic的方法时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个线程执行。Atomic类在软件层面上是非阻塞的,它的原子性其实是在硬件层面上借助相关的指令来保证的。

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

  • AtomicBoolean
  • AtomicInteger
  • AtomicLong

原子更新数组类型

  • AtomicIntegerArray
  • AtomicLongArray
  • AtomicReferenceArray

原子更新字段类型

  • AtomicIntegerFieldUpdater
  • AtomicLongFieldUpdater
  • AtomicStampedReference

原子更新引用类型

  • AtomicReference
  • AtomicReferenceFieldUpdater
  • AtomicMarkableReference

累加器

  • DoubleAccumulator
  • LongAccumulator
  • DoubleAdder
  • LongAdder
  • Striped64

locks

这个包主要提供了很多java中的锁.例如:ReentrantLock,ReentrantReadWriteLock...等等.这些类就是通过AQS来实现的.locks包里面最重要的就是提供了LockReadWrite两种接口,提供两种类型的锁。这两个接口也就形成了整个locks包的基石。

Lock包内的接口和类列表如下

  • 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

你可能感兴趣的:(JUC概述)