什么是juc
juc
是java中java.util.concurrent
包的简称.它位于jdk的rt.jar中,是jdk的核心工具包之一。从字面上来理解就是java并发工具包。
其主要内容包含3个部分atomic
包、locks
包以直接在该包下的直接接口和类。其主要功能如下
-
atomic
支持原子操作类相关代码。 -
locks
java中锁相关代码。 - 直接接口和类是其他并发容器相关代码。
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
包里面最重要的就是提供了Lock
和ReadWrite
两种接口,提供两种类型的锁。这两个接口也就形成了整个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
网友评论