Java
JUC 并发编程
本文介绍了Java多线程与并发编程的核心概念。首先阐述了进程作为资源分配单位、线程作为执行单位的基本概念,以及并发与并行的区别。详细讲解了Java中创建线程的三种方式(Thread、Runnable、FutureTask)和线程状态管理。重点解析了synchronized关键字的实现原理,包括Monitor管程机制、锁升级过程(无锁→偏向锁→轻量级锁→重量级锁)、锁自旋和锁消除等优化策略。介绍了volatile关键字通过内存屏障保证可见性和有序性的原理,以及wait-notify机制。阐述了CAS无锁编程思想,对比了乐观锁与悲观锁的特点。最后介绍了Java.util.concurrent.atomic包中的原子类,包括基本原子类、原子引用、原子数组、原子更新器和原子累加器等,展示了如何利用CAS实现高效的线程安全操作。