LongAdder并发计数的底层原理

LongAdder 是 Java 中的一个高效并发累加器。它在高并发环境下,通过分散热点数据来减少竞争,多个线程可对不同的内部变量进行累加操作。相比 AtomicLong,在高并发场景下性能更好,适用于需要频繁进行累加操作的多线程环境。

huizhang43 阅读:3 评论:0 2024-08-22

PriorityQueue源码分析

PriorityQueue 是 Java 中的优先队列。它基于堆数据结构实现,能自动对元素进行排序。元素按照优先级顺序出队,优先级高的元素先出队。可自定义比较器决定优先级规则,常用于需要按特定顺序处理元素的场景,如任务调度等。

huizhang43 阅读:4 评论:0 2024-08-22

ReentrantLock加解锁流程

ReentrantLock中对共享资源的独占主要是通过AQS中的成员变量state来控制,通过CAS操作state值来实现加锁和释放锁。同时那些没有获取到锁的线程就会被放到AQS中维护的一个FIFO双向队列中,将它们阻塞起来,当state值被修改成0的时候(有线程释放锁了),这些线程会被唤醒去尝试修改state的值(获取锁)。

huizhang43 阅读:3 评论:0 2024-08-22

ReferenceQueue源码分析

ReferenceQueue 是 Java 中的一个用于管理引用对象的队列。它与软引用、弱引用和虚引用配合使用,当被引用的对象被回收时,相应的引用对象会被加入到这个队列中。这有助于跟踪对象的回收情况,实现资源的有效管理。

huizhang43 阅读:2 评论:0 2024-08-22

Semaphore源码解析

Semaphore 是 Java 中的一种同步工具类。它通过控制一定数量的许可证来管理对共享资源的并发访问。可以限制同时访问资源的线程数量,当一个线程获取许可证后才能访问资源,使用完后释放许可证,方便实现资源的并发控制。

huizhang43 阅读:3 评论:0 2024-08-22

«