Skip to content

Java Util Concurrent (JUC) 包总结

概述

java.util.concurrent 包提供了用于处理线程同步和并发任务的工具类,是 Java 并发编程的核心 API。


一、Executor 框架(执行器)

核心接口/类

类/接口说明
Executor最简单的任务执行接口
ExecutorService管理生命周期可执行异步任务的执行器
ScheduledExecutorService支持定时/周期性任务调度的执行器
ThreadPoolExecutor基于线程池的执行器实现
ScheduledThreadPoolExecutor定时任务线程池实现
Executors创建各种标准线程池的工具类
AbstractExecutorServiceExecutorService 的抽象基类

任务相关

类/接口说明
Runnable可运行任务接口
Callable可返回结果的任务接口
Future表示异步计算结果的接口
FutureTaskFuture 的可取消异步任务实现
CompletionService管理已完成任务的执行服务
ExecutorCompletionServiceCompletionService 的实现

异常类

  • ExecutionException - 执行任务时抛出异常
  • CancellationException - 任务被取消时抛出
  • RejectedExecutionException - 任务被拒绝执行时抛出

二、阻塞队列(Blocking Queue)

核心接口

接口说明
BlockingQueue支持等待操作的队列
BlockingDeque双端阻塞队列
TransferQueue特殊的阻塞队列(生产者消费者模式)
SynchronousQueue每个插入操作必须等到另一个线程才会被消费的队列

具体实现

说明
ArrayBlockingQueue有界数组实现的阻塞队列
LinkedBlockingQueue可选边界的链表实现的阻塞队列
LinkedBlockingDeque可选边界的链表实现的双端阻塞队列
PriorityBlockingQueue无界优先级队列
DelayQueue带延迟时间的元素队列
LinkedTransferQueue由链表组成的有界队列
CopyOnWriteArrayList写时复制的线程安全列表(用作队列)

三、并发容器

Map 类型

说明
ConcurrentHashMap高并发场景下的 HashMap 实现,分段锁/CAS+synchronized
ConcurrentSkipListMap跳表实现的有序并发 Map
ConcurrentNavigableMapNavigableMap 的并发版本接口

Queue/Deque 类型

说明
ConcurrentLinkedQueue非阻塞的链接队列(CAS 实现)
ConcurrentLinkedDeque非阻塞的双端队列
ConcurrentSkipListSet跳表实现的有序并发 Set

其他

说明
CopyOnWriteArrayList读写分离的线程安全 List
CopyOnWriteArraySet基于 CopyOnWriteArrayList 的 Set
Exchanger两个线程间交换数据的点

四、同步辅助类(Synchronizers)

CountDownLatch / CyclicBarrier

说明
CountDownLatch计数器门闩,一个或多个线程等待其他线程完成
CyclicBarrier循环屏障,多个线程互相等待达到共同点
Phaser可动态调整阶段的屏障

Semaphore

说明
Semaphore信号量,控制同时访问资源的线程数量

DelayQueue/Delayed

类/接口说明
Delayed表示延迟对象的接口
DelayQueue存储 Delayed 元素的无界阻塞队列

CountedCompleter

说明
CountedCompleter完成动作后触发其他完成的任务

五、Fork/Join 框架

说明
ForkJoinPool支持工作窃取算法的 Fork/Join 执行器
ForkJoinTaskFork/Join 池中执行的基本任务类
RecursiveTask返回结果的递归任务
RecursiveAction不返回结果的递归任务
ForkJoinWorkerThreadFork/Join 框架的工作线程
CountedCompleter计数完成器,完成任务后可触发其他任务
CompletionException完成操作抛出的异常

六、CompletableFuture(异步编程)

类/接口说明
CompletableFuture支持异步组合的 Future 实现
CompletionStage描述逐步异步计算的接口

七、Structured Concurrency(结构化并发,Java 21+)

说明
StructuredTaskScope结构化并发作用域,自动管理和合并子任务
StructuredTaskScopeImpl内部实现类
ThreadPerTaskExecutor为每个任务创建新线程的执行器
FlowReactive Streams API 实现

八、发布订阅模式

说明
SubmissionPublisher实现 Reactive Streams Publisher 的类

九、时间单元与异常

说明
TimeUnit时间单位枚举,支持时间转换
TimeoutException超时异常
BrokenBarrierException屏障破裂异常
StructureViolationException结构违规异常

十、原子变量(atomic 子包)

位于 atomic/ 子目录下,提供 CAS 原子操作:

  • AtomicBoolean, AtomicInteger, AtomicLong
  • AtomicReference, AtomicMarkableReference
  • AtomicIntegerFieldUpdater, AtomicLongFieldUpdater
  • Striped64, Unsafe 等底层实现

十一、锁机制(locks 子包)

位于 locks/ 子目录下,提供高级锁功能:

  • Lock - 基本锁接口
  • ReentrantLock - 可重入锁
  • ReadWriteLock - 读写锁接口
  • ReentrantReadWriteLock - 可重入读写锁
  • StampedLock - 戳记锁(读优先)
  • Condition - 与锁配合使用的条件变量

十二、其他工具类

说明
ThreadFactory创建新线程的工厂
RejectedExecutionHandler拒绝策略处理器
JoinersJoiner 工具类
Helpers辅助方法

核心特性总结

  1. 线程安全:所有并发容器都保证多线程访问的安全性
  2. 非阻塞算法:大量使用 CAS(Compare-And-Swap)和无锁算法
  3. 可配置性:线程池大小、队列容量、拒绝策略等均可配置
  4. 灵活调度:支持定时、周期性任务调度
  5. 组合能力:CompletableFuture 支持复杂的异步组合
  6. 结构化并发:Java 21+ 引入结构化并发,简化错误处理和资源管理

生成时间:2026-08-04

更新于:

note