logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

生产可用的 Redis 分布式锁完整实现

生产环境必须用 Redisson,不要手写 Redis 锁原子加锁、唯一标识、Lua 解锁、看门狗续期、可重入高可用:普通业务用普通锁,核心业务用 Redlock 红锁代码可直接复制到生产环境使用,无坑、稳定可靠。

#redis#分布式#数据库
MySQL 死锁:已产生死锁的解决方法 + 永久避免方案

已产生的死锁:MySQL 自动回滚一个事务,无需手动处理查死锁原因:用根治死锁:固定访问顺序 + 加索引 + 短事务 + 代码重试兜底:业务捕获死锁异常自动重试,用户无感知。

#mysql#数据库
Java 频繁GC 完整排查流程

jstat -gc确认频繁GCjmap -dump导出堆MAT分析谁占内存90% 是static集合、ThreadLocal、缓存无回收导致泄漏。

#java#开发语言
Java 应用 CPU 过高排查全流程

top找 Java 进程 PIDtop -H找耗 CPU 线程 TID转 16 进制定位代码行按栈特征判断是死循环/GC/锁/密集计算整个流程不重启、不影响业务、1~3 分钟定位根因。

#java#python#开发语言
Arthas 线上问题排查实战:CPU过高、频繁GC

CPU高:用threadtrace定位耗CPU线程与慢方法频繁GC:用dashboardgcheapdump定位内存问题Arthas 全程无侵入、不重启、线上直接用。

#java
Java 线程生命周期

Java 线程生命周期有6种状态RUNNABLE是核心状态,包含等待CPU和正在运行BLOCKED只针对 synchronized 锁等待WAITING无限等待,限时等待线程终止后不可重启。

#java#开发语言
Java 线程池 execute() 和 submit() 对比

execute():轻量、无返回、异常直接抛 → 适合简单异步执行。submit():强大、有返回、可捕获异常 → 适合需要结果/管控的任务。简单任务用 execute,复杂任务用 submit + Future。

#java#开发语言
Java 内存泄漏早期排查(未触发频繁Full GC前)

线程是 GC Root,线程里的引用全部泄漏线程池任务里持有大对象,且任务无限等待看趋势:老年代只涨不跌 = 泄漏抓快照:Full GC 后 jmap 抓 hprof用MAT:看 Leak Suspects查引用:静态集合、ThreadLocal、线程池、缓存看代码:谁长期持有对象不释放。

#java#jvm#算法
JDK 自带四大命令行工具:jstat、jstack、jmap、jhat 详解

工具核心用途最常用命令jstat看 GC、内存使用率、性能监控jstack看线程、死锁、CPU 飙高jmap导出堆快照、看对象数量jhat分析堆快照(Web 界面)jstat:监控 GC 和内存使用,不暂停应用jstack:抓线程堆栈,查死锁、CPU 高jmap:导出堆快照,查对象泄漏jhat:简单分析堆快照(推荐用 MAT 替代)这四个工具是 Java 线上问题排查的基础必备技能,记住常用命令就

#java#开发语言
Java 实现阻塞队列

队列满/空时线程阻塞,条件满足时唤醒ReentrantLock + Condition + 环形数组手写核心是理解原理,生产环境直接用官方实现必须用while判断队列状态,防止虚假唤醒。

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