文章列表

任务特别多,线程池队列满了怎么办?不能拒绝!

线程池队列满了怎么办?任务还不能拒绝!本文深入剖析多种解决方案:从CallerRunsPolicy自带背压、动态扩容线程池,到引入消息队列削峰填谷、任务持久化重试机制,再到监控预警与限流降级。提供完整生产级架构,确保高并发下任务最终执行,助你从容应对线上难题。

说说动态线程池实现原理?

本文深入解析动态线程池的实现原理,基于ThreadPoolExecutor提供的setter方法,结合配置中心实现运行时参数热更新,详解源码级线程安全保障机制(mainLock、Worker锁、ctl),并对比主流开源方案Hippo4J/Dynamic-Tp,助你掌握线程池动态调优与生产实践。

Java 线程池有几种创建方式?

本文全面解析Java线程池的四种创建方式:Executors工厂方法(含隐患分析)、ThreadPoolExecutor手动构造(7大核心参数详解)、ScheduledThreadPoolExecutor定时任务、ForkJoinPool分治计算。深入剖析线程池执行流程、拒绝策略与生产环境配置最佳实践,助你彻底掌握线程池的创建与调优。

ThreadLocalMap 和 HashMap 的区别?

本文深入解析ThreadLocalMap与HashMap的核心区别。从设计目的、数据结构(开放地址法 vs 拉链法)、键的引用类型(弱引用 vs 强引用)、内存泄漏风险及null处理等维度全面对比,并剖析ThreadLocalMap为何采用线性探测,助你彻底理解这两个Map的底层机制与面试高频考点。

谈谈 CAS 原理?

本文深入解析CAS(Compare and Swap)原理,从硬件指令到Java实现,详解其作为乐观锁的核心机制、代码示例、与悲观锁对比,以及ABA问题的产生与解决方案(AtomicStampedReference)。助你掌握无锁并发的基石与面试考点。

Java 中常见的锁有哪些?

本文深入解析Java并发编程中的常见锁,涵盖内置锁synchronized、显式锁ReentrantLock、读写锁ReentrantReadWriteLock、乐观锁/悲观锁、可重入锁等,详解各自特性、实现原理与适用场景,并对比性能与选型建议,助你全面掌握锁的体系与面试高频考点。

Redis 锁是并发安全的吗?怎么保证不被抢夺?

本文深度解析Redis分布式锁的并发安全问题及防护机制。从原子性加锁(SET NX)、唯一标识防误删、看门狗自动续期到Redlock算法应对主从切换,详解如何层层加固确保锁不被意外抢夺,并对比ZK锁的选型取舍,助你掌握生产级分布式锁实践。

Spring Boot Controller 层怎么实现并发安全的?

本文深入解析Spring Boot Controller层实现并发安全的原理与实践。从Controller默认单例特性出发,剖析多线程下成员变量引发的安全问题,详解无状态设计、ThreadLocal、请求作用域Bean等解决方案,并对比优劣与常见误区,助你写出高并发下的安全代码。

运行时常量池和字符串常量池的关系是什么?

本文深度解析运行时常量池与字符串常量池的关系与区别。从存储位置(元空间 vs 堆)、存储内容、生命周期到类加载过程中的交互机制,详解字符串字面量的解析过程及intern()方法的底层原理,助你彻底理清这两个JVM核心概念。

JVM 类加载器如何保证核心类库不被覆盖?

本文深入解析Java类加载器如何通过双亲委派模型保证核心类库不被覆盖。详解类加载器层次、双亲委派工作流程、源码实现,以及如果没有该机制可能引发的类型混乱与安全风险。助你理解JVM类加载安全基石与面试高频考点。