logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Spring Boot 与 Tomcat 错误页面处理机制深度解析

Spring Boot 与 Tomcat 的错误页面处理机制展示了优秀框架设计的核心原则:兼容性、灵活性和性能的平衡。在微服务架构日益流行的今天,优雅的错误处理不仅是用户体验的保障,也是系统可观测性的重要组成部分。的缓存机制(-128 到 127),对于常见的 HTTP 状态码(如 404、500),这可以避免不必要的对象创建。这些属性为错误页面提供了完整的上下文信息,使得错误页面能够显示详细的错

#spring boot#tomcat
Redis 的定时心脏:serverCron 与集群故障转移的幕后故事

从serverCron到公平性与低延迟:通过轮询和动态 hz 保证大量客户端能被及时处理,避免某些连接饿死。内存效率:定期收缩缓冲区、跟踪内存用量,为内存管理和客户端驱逐提供依据。高可用自动恢复:故障转移中的延迟选举、数据新鲜度检查,确保了数据一致性和选举的稳定性。性能敏感性:所有后台操作都是增量、分片的,避免一次性做大量工作阻塞主线程。Redis 的单线程模型并非真的“单打独斗”,正是依靠这些精

#redis#数据库#缓存
深入剖析 Tomcat 9.0.53 源码:Web 资源管理与类加载机制

分层资源集合提供了灵活的覆盖和组合能力,支持从目录、JAR、外部位置等多种来源透明地获取资源。统一的抽象屏蔽了文件系统、JAR、内存等不同存储方式的差异。定制类加载器既遵循 Servlet 规范的要求(允许 Web 应用覆盖部分类,同时保护 JDK 类),又通过缓存、字节码转换等特性提升了性能和可扩展性。理解这些底层机制,不仅有助于诊断应用部署中的、资源找不到等问题,也为编写高性能、高可靠性的 T

#tomcat#前端#java
深度剖析:从 clone3 到 start_routine —— Linux 新线程的“破茧成蝶”之旅

最终会调用到,然后进入中的,但最底层的汇编路径仍然指向。你提供的entry_64.S中包含了这个标签的完整实现(前面已经贴过)。我们再仔细看几步:assemblyIBRS_EXIT/* 处理 Xen PV 和 PTI 的替代跳转 */POP_REGS// 恢复所有通用寄存器add $8, %rsp// 跳过 orig_axswapgstestb $3, 8(%rsp)// 检查 CS 的低 2 位

#linux#java#运维
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程

futex 是 Linux 提供的一种快速用户态互斥体机制。在无竞争的情况下,所有操作都在用户态完成,不需要陷入内核;只有在发生竞争时,才通过系统调用进入内核进行排队和唤醒。这种设计极大地提升了性能,因为绝大多数锁操作都是无竞争的。futex_wait和futex_wake是两个最核心的系统调用。本文从用户态的一个futex_wait调用出发,沿着代码执行路径深入内核,最终到达 CPU 的原子指令

#linux#windows#microsoft
深入剖析 OpenJDK 17 解释器中的安全点(Safepoint)进入与退出机制

入口点准备为每个 TosState 生成安全点入口,调用。状态转换 RAIIJRT_ENTRY宏中的负责 Java ↔ VM 状态的切换,并在转换期间插入安全点检查。统一轮询机制通过线程本地 polling word 和全局标志实现轻量级的安全点检测。阻塞等待利用高效挂起和唤醒线程。解释器轮询点中的testb指令在每个字节码调度时检查安全点请求,并切换到安全点分发表。

#安全#开发语言#java
深入OpenJDK 17:Java对象分配、内存不足与VMThread协作的垃圾回收机制

Java开发者常常依赖JVM的自动内存管理,当堆内存不足时,垃圾回收器(Garbage Collector,GC)会被触发以回收空间。然而,GC操作并非由触发分配的Java线程直接执行,而是通过一个专门的JVM内部线程——VMThread——来调度和执行。本文将基于OpenJDK 17的源码,深入剖析一个Java线程在分配对象时遇到内存不足,如何请求并等待GC完成,以及VMThread如何响应、执

#java#python#开发语言
走进 Linux 内核:从 touch 命令到磁盘 inode 的完整旅程

几乎每个 Linux 用户都曾用过touch命令。你可能知道,当文件不存在时它会创建一个空文件;当文件已存在时,它会更新文件的访问时间和修改时间。但你是否想过,这个简单的命令是如何一步步将请求从键盘传递到磁盘的?用户空间的main函数做了哪些判断?内核 VFS(虚拟文件系统)如何将路径解析成 dentry?ext4 文件系统又是怎样从数十亿个 inode 中找到一个空闲位,然后将其写入磁盘?本文以

#linux#java#前端
深入 OpenJDK 17 源码:Java Native 方法的注册、绑定与调用全流程

Java 代码调用→start0()(native)。解释器/JIT发现Method的还未设置,调用。Wrapper 生成计算 C 调用约定的参数位置。移动参数(handlize 对象)。建立栈帧、保存寄存器。设置、切换线程状态。调用(即返回后处理安全点、恢复状态、处理结果。在jvm.cpp中实现,最终调用操作系统的线程创建函数(如控制权回到 wrapper,然后返回到 Java 代码。JNI 动

#java#python#开发语言
Java 对象的内存密语:从字段偏移量计算到 Unsafe 访问的完整链路

解耦与延迟:字段偏移量的计算发生在类加载后处理阶段,与字节码解析解耦;偏移量的存储紧凑且带标记,节省内存。优化第一:基本类型字段降序排列、best‑fit 空隙填充、对齐调整,都是为了减少对象大小并提高访问效率。并发感知@Contended注解的填充机制直接融合在布局算法中,体现了 JVM 对多核时代的适应。底层访问友好Unsafe直接消费这些偏移量,使得 JVM 内部和 JDK 底层库(如Ato

#java#开发语言
    共 37 条
  • 1
  • 2
  • 3
  • 4
  • 请选择