JUC
文章平均质量分 88
d3y1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC-10AQS(AbstractQueuedSynchronizer)
AQS(AbstractQueuedSynchronizer)是Java并发编程的核心框架,为锁和同步器提供了基础实现。其核心设计包含状态管理机制(volatile state变量)和FIFO等待队列(Node节点组成)。AQS通过模板方法模式,将同步状态的管理(如获取/释放)与具体实现解耦,支持独占和共享两种同步模式。等待队列采用双向链表结构,节点包含线程引用和等待状态,通过CAS操作保证线程安全。ReentrantLock、CountDownLatch等常用并发工具都是基于AQS实现的变体。原创 2025-09-21 11:42:26 · 688 阅读 · 0 评论 -
JUC-09并发高级特性
本文深入解析了Java并发编程中的高级特性,包括CompletableFuture异步编程、ForkJoinPool并行计算框架及其组件架构。重点介绍了CompletableFuture的实现原理和异步任务链组合能力,展示了如何通过supplyAsync、thenApply、thenCompose等方法构建复杂的异步任务处理流程。文章还提供了类图展示各核心组件关系,如CompletionStage、ForkJoinPool、RecursiveTask等,帮助开发者理解Java并发高级特性的底层机制和实际应用原创 2025-09-21 11:40:43 · 977 阅读 · 0 评论 -
JUC-08同步器Synchronizers
Java同步器是并发编程中用于线程协作的高级工具类,主要包括CountDownLatch、CyclicBarrier、Semaphore、Exchanger和Phaser等。每种同步器都有特定的应用场景:CountDownLatch基于计数器实现线程等待,CyclicBarrier支持循环使用的线程屏障,Semaphore控制资源访问并发数。这些同步器底层多基于AQS(AbstractQueuedSynchronizer)实现,提供了比传统synchronized更灵活的线程同步机制。通过合理使用这些同步器原创 2025-09-21 11:33:56 · 911 阅读 · 0 评论 -
JUC-07线程池Thread Pool
Java线程池是并发编程的核心组件,通过复用线程和控制并发度提高性能。Java的java.util.concurrent包提供了完整的线程池架构,包括Executor接口、ThreadPoolExecutor实现类等核心组件。线程池通过核心参数(如线程数、队列容量)和状态机机制(RUNNING、SHUTDOWN等)管理任务执行流程。当提交任务时,线程池会根据当前状态和容量决定是创建新线程、加入队列还是拒绝任务。这种机制实现了高效的线程复用和资源管理。原创 2025-09-21 11:31:51 · 663 阅读 · 0 评论 -
JUC-06锁机制Lock
Java锁机制概要 Java提供了多层次的锁机制,包括基础的synchronized和更灵活的java.util.concurrent.locks包。主要锁类型包括: 可重入锁(ReentrantLock):支持公平/非公平策略,提供可中断、超时获取等特性,基于AQS实现 读写锁(ReadWriteLock):实现读写分离,读锁共享、写锁独占,通过高低位分割状态管理 StampedLock:优化读场景,支持乐观读模式,避免写线程饥饿 Condition:提供细粒度的线程等待/唤醒机制 这些锁机制通过不同的同原创 2025-09-21 11:29:37 · 551 阅读 · 0 评论 -
JUC-05Atomic原子类
Java原子类深度解析摘要 Java原子类位于java.util.concurrent.atomic包中,通过CAS操作实现线程安全的变量操作。主要分类包括:基本类型(AtomicBoolean/Integer/Long)、数组类型、引用类型(AtomicReference等)、字段更新器和Java 8新增的高性能累加器类(LongAdder等)。核心原理是CAS(Compare-And-Swap)硬件级原子操作,通过比较内存值、预期值和新值实现无锁同步。AtomicInteger等类的实现依赖于Unsaf原创 2025-09-21 11:20:42 · 1012 阅读 · 0 评论 -
JUC-04BlockingQueue
BlockingQueue是Java并发包中提供的线程安全队列接口,它支持阻塞操作,当队列满时插入操作会阻塞,当队列空时移除操作会阻塞。它是生产者-消费者模式的核心实现。原创 2025-09-20 18:09:42 · 907 阅读 · 0 评论 -
JUC-03CopyOnWriteArrayList
CopyOnWriteArrayList是Java线程安全的List实现,采用"写时复制"策略保证线程安全。其核心特性包括:1)所有操作线程安全;2)修改时创建数组新副本;3)提供最终一致性迭代器。底层通过volatile数组存储数据,写操作加锁同步,读操作不加锁。适用于读多写少场景,如事件监听器管理、白名单控制等。典型应用包括并发事件监听器管理(动态注册/注销监听器)和白名单管理(支持正则匹配)。相比普通同步List,在读操作占优时性能更好,但写操作成本较高。原创 2025-09-20 18:08:09 · 698 阅读 · 0 评论 -
JUC-02ConcurrentHashMap
《ConcurrentHashMap深度解析》摘要: ConcurrentHashMap是Java并发包中高效的线程安全哈希表实现,核心特性包括:完全线程安全、高性能并发读写(JDK8+采用CAS+synchronized优化)、丰富的原子操作支持。其内部通过Node数组和红黑树(解决哈希冲突)实现,关键数据结构包含volatile修饰的val和next指针确保可见性。核心API如put方法采用分段锁策略,先CAS尝试无锁插入,失败则同步块加锁;get操作完全无锁,利用volatile保证线程安全。JDK8原创 2025-09-20 18:06:48 · 694 阅读 · 0 评论 -
JUC-01并发包整体概览
JUC(Java并发工具包)是Java 5引入的核心并发编程组件,包含原子类、锁、并发容器、线程池、同步器等模块。相比传统synchronized,JUC提供了更高效的CAS操作、显式锁机制和丰富的并发工具,支持非阻塞算法和线程安全集合。学习路径建议从基础并发容器到原子类、线程池,再到AQS框架和高级特性。使用时应根据场景选择合适的并发工具,注意性能优化和最佳实践。文档将系统讲解JUC各组件原理、API及实际应用案例。原创 2025-09-20 18:04:19 · 767 阅读 · 0 评论
分享