Posts
All the articles I've posted.
-
LongAdder vs AtomicLong——高并发下的Cell分槽与伪共享
LongAdder 通过 Cell 数组分槽降低 CAS 竞争,@Contended 消除伪共享保证分槽独立性,以 sum()最终一致性换高并发写入性能
-
Java线程池——execute()为什么入队后要做二次检查?
线程池 execute()入队后二次检查:防无线程消费队列与 shutdown 时任务悬空,保证竞态场景下任务语义一致
-
ForkJoinPool分治并行:工作窃取与双端队列
ForkJoinPool 用不对称双端队列实现工作窃取:自身 LIFO 取最新 Fork 保留缓存局部性,偷取者 FIFO 从栈底取大粒度任务实现负载均衡。
-
CountDownLatch、CyclicBarrier、Semaphore——三大并发工具辨析
CountDownLatch 一次性倒计数适合主等子,CyclicBarrier 可重置栅栏适合多阶段同步,Semaphore 控制并发数适合限流与连接池。
-
CompletableFuture——异步编程的链式编排
CompletableFuture 用 thenApply/thenCombine 链式编排异步任务,但默认共用 ForkJoinPool.commonPool,IO 密集任务须自定义线程池避免阻塞共享资源。
-
AQS——JUC所有锁的共同底座
AQS 将阻塞、排队、唤醒抽离为抽象基类,子类只需定义 tryAcquire/tryRelease 语义,实现锁与同步器的统一底座。
-
Java线上排查——从top到Arthas的完整工具链
从 top 定位 CPU 到 Arthas trace 精准定位方法耗时,构建 Java 线上排查的五场景完整工具链。
-
synchronized锁升级机制
synchronized 根据竞争程度自动升级:无锁→偏向锁→轻量级锁→重量级锁,通过 Mark Word 编码锁状态实现无竞争零开销。