logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入理解 Java 监视器(Monitor)、synchronized 实现原理与线程间通信机制

本文深入解析Java并发编程中的监视器(Monitor)机制及其实现原理。首先介绍Monitor作为同步原语的核心思想,说明其在Java中通过对象内置锁实现,包含Owner、EntrySet和WaitSet三个关键组件。然后剖析synchronized关键字的底层实现,包括字节码指令和JVM锁优化机制(偏向锁、轻量级锁、重量级锁)。最后详细讲解wait/notify线程通信机制的工作原理和使用注意

#面试
为什么 wait() 和 notify() 定义在 Object 类中?从 Java 锁机制设计角度深度解析

Java的wait()、notify()和notifyAll()方法定义在Object类而非Thread类,这源于Java锁机制的设计原理。每个Java对象都内置一个监视器(Monitor),线程通过竞争对象锁实现同步。wait()会释放当前对象锁并进入等待队列,notify()则唤醒该队列中的线程。若这些方法定义在Thread类中,将无法明确指定等待/唤醒哪个对象的锁,导致同步语义混乱。这种设计

一文彻底搞懂 I/O 模型:BIO、NIO、多路复用、信号驱动、异步(附 Java 实战 + 图解)

摘要:本文深入解析五大I/O模型,包括阻塞I/O、非阻塞I/O、I/O多路复用、信号驱动I/O和异步I/O。重点比较各模型在数据准备和复制阶段的特性,指出I/O多路复用(NIO核心)是高并发场景的最佳选择,被Netty、Redis等广泛应用。文章澄清常见误区,强调Linux环境下JDK的AIO并非真正异步,并给出SpringBoot中的技术选型建议。结论表明,多路复用模型(Reactor模式)是目

#网络
BIO、NIO、AIO 三大 I/O 模型彻底讲清楚!(附 Spring Boot 实战对比 + 反例避坑)

本文通过生活化比喻和代码示例,系统讲解了Java三种I/O模型的核心区别:BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)。文章用餐厅点餐的类比形象说明三种模型的特点,并给出SpringBoot环境下的代码实现。重点指出:NIO是目前主流方案(Netty框架基于NIO),AIO在Linux支持不佳,BIO仅适合学习场景。最后提供了选择建议,推荐大多数场景使用Netty(NIO)方案,

SQL 的执行过程你了解吗?从客户端到磁盘,一条 SQL 到底经历了什么?

摘要:本文详细解析了MySQL中SQL语句的完整执行流程,包含8个核心阶段:连接器→解析器→预处理器→优化器→执行器→存储引擎→返回结果。重点分析了优化器的索引选择、执行器的数据过滤机制,以及存储引擎的磁盘IO问题。文章提供了SpringBoot中的优化建议,包括使用EXPLAIN分析执行计划、监控BufferPool命中率等,并对比了无索引和有索引查询的性能差异,指出90%的SQL性能问题源于优

#mysql#数据库
手把手教你如何看懂 EXPLAIN:MySQL 性能调优的“透视镜”!

MySQL性能优化神器EXPLAIN详解:手把手教你定位SQL瓶颈。文章详细解析EXPLAIN命令的7个核心字段,包括type、key、rows等关键指标,通过SpringBoot实战案例演示如何分析执行计划。重点指出type=ALL和Extra中出现filesort/temporary是性能瓶颈信号,并提供索引优化方案,如建立联合索引实现覆盖查询。最后给出EXPLAIN速查表,帮助开发者快速识别

#mysql
JDK8 升级到 JDK17,到底带来了哪些实用新特性?(附 Spring Boot 实战代码)

【摘要】JDK17相比JDK8带来5大核心升级:1)record简化数据类定义;2)文本块优化多行字符串处理;3)switch表达式提升分支安全性;4)var减少模板代码;5)容器感知支持云原生部署。升级必要性体现在:安全更新终止、性能提升40%、主流框架强制要求。新项目建议直接采用JDK17,老项目需评估兼容性。典型示例展示SpringBoot中如何应用record定义DTO、文本块处理AI提示

#java
到底了