文章列表
什么是 happens-before 原则?
本文详细解析Java内存模型中的happens-before原则,包括其八大核心规则、设计目的及如何保证多线程环境下的内存可见性与有序性,是理解并发编程底层机制的关键。
CountDownLatch、CyclicBarrier、Semaphore 的区别?
本文详细对比CountDownLatch、CyclicBarrier和Semaphore三大并发工具的核心区别、使用场景及实现原理,帮助你根据不同的线程协作需求选择正确的工具。
AQS 是什么?它存在什么问题?
本文深入解析AQS(AbstractQueuedSynchronizer)的核心原理:状态管理、FIFO等待队列及模板方法模式,详解其作为Java并发包基石如何构建ReentrantLock、Semaphore等同步组件。
什么是 CAS?存在什么问题?
本文深入解析CAS(比较并交换)的底层原理、ABA问题及其解决方案,详解高并发场景下的自旋性能开销,是理解无锁编程与Java原子类的核心指南。
父子线程之间如何共享、传递数据?
本文详解父子线程间三种数据共享传递方案:共享变量同步、InheritableThreadLocal上下文传递及任务对象传参,重点分析线程池场景下的陷阱与解决方案,并提供生产环境最佳实践指南。
公平锁和非公平锁的区别?
本文深入解析公平锁与非公平锁的核心区别:公平锁按序排队保证公平性,非公平锁允许插队提升吞吐量。详解ReentrantLock的AQS实现原理、性能对比及实际选型指南。
LongAdder 和 AtomicLong 的区别?
本文深度解析LongAdder与AtomicLong的核心区别,从CAS原理、分段累加设计到性能对比,详解两者在高并发写入、读取一致性及内存开销上的差异,并提供明确的技术选型指南。
synchronized 和 ReentrantLock 的区别是什么?
本文深入对比synchronized与ReentrantLock的核心区别,从使用方式、功能性、底层实现及性能多维度分析,详解何时选择内置隐式锁或灵活显式锁,是Java并发编程的关键决策指南。
synchronized 锁升级过程是怎样的?
本文详解synchronized锁升级的全过程:无锁、偏向锁、轻量级锁到重量级锁的转换机制,结合JDK版本变化说明偏向锁的现状,是深入理解Java锁优化与高并发设计的关键指南。
synchronized 是怎么实现的?
本文深入解析synchronized关键字的底层实现,从字节码指令到JVM锁升级(偏向锁/轻量级锁/重量级锁)全过程,详解对象头Monitor机制,并与ReentrantLock进行对比,是理解Java锁机制与性能优化的核心指南。