<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[llll_llll0xff的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/llll_llll0xff</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; llll_llll0xff]]></copyright><item><title><![CDATA[同步器AQS]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165492333</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165492333</guid><author>llll_llll0xff</author><pubDate>Tue, 15 Sep 2026 23:04:27 +0800</pubDate><description><![CDATA[2.tryAcquire 中判断是否有“先来者”（即队列头结点的下一个接口是否为空）：在 tryAcquire 中，如果 state == 0，先调用 hasQueuedPredecessors()，检查 AQS 等待队列中是否有线程比当前线程等得更久。1.直接抢占：线程调用 lock() 时，首先直接尝试 CAS 将 state 从 0 改为 1，不管等待队列里有没有线程在排队。1.不直接抢占，先检查队列：线程调用 lock() 时，不会先 CAS，而是直接进入 acquire(1) 流程。]]></description><category></category></item><item><title><![CDATA[Java 锁机制]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165298421</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165298421</guid><author>llll_llll0xff</author><pubDate>Mon, 14 Sep 2026 11:28:15 +0800</pubDate><description><![CDATA[关键字（JVM 内置）以及包中的显式锁接口。本文从「为什么需要锁」出发，再依次展开Lock接口、。]]></description><category></category></item><item><title><![CDATA[线程并发关键字：synchronized、volatile、final]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165298324</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/165298324</guid><author>llll_llll0xff</author><pubDate>Mon, 14 Sep 2026 11:27:03 +0800</pubDate><description><![CDATA[理解 Java 并发的内存语义，绕不开 happens-before 与 JMM（Java Memory Model）。本文围绕volatilefinal三个关键字，从「happens-before → 各关键字的语义与底层实现 → 三者对比」的脉络展开。]]></description><category></category></item><item><title><![CDATA[海量手机号凯苏查询判断方案]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164454763</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164454763</guid><author>llll_llll0xff</author><pubDate>Mon, 07 Sep 2026 11:04:11 +0800</pubDate><description><![CDATA[用「两层布隆（本机 + Redis）」快速挡掉不存在的号码，用「Redis 精确缓存」接住高频命中，再把漏网的少数请求交给「分库分表的数据库」做最终精确判定。]]></description><category></category></item><item><title><![CDATA[MYSQL基础语法与聚合函数]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164430352</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164430352</guid><author>llll_llll0xff</author><pubDate>Sun, 06 Sep 2026 20:20:49 +0800</pubDate><description><![CDATA[聚合函数对一组值进行计算，返回一个单一的值。默认最大长度为 1024 字节，可通过。条件会删除全表数据！自动忽略 NULL 值。过滤的是行（分组前），过滤的是组（分组后）。条件会更新全表数据！]]></description><category></category></item><item><title><![CDATA[SQL 语句优化]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164430342</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/164430342</guid><author>llll_llll0xff</author><pubDate>Sun, 06 Sep 2026 20:19:31 +0800</pubDate><description><![CDATA[在WHEREORDER BYGROUP BYSELECTJOIN等子句中涉及的字段没有建立索引。<>NOT IN：在"性别""状态"等低区分度字段上建索引，优化器可能选择不走索引。SELECT *返回过多列，或没有LIMIT的大结果集，尤其大字段多时更慢。需要扫描并丢弃前 100000 条数据，偏移量越大越慢。：关联字段类型不一致、缺少关联条件、子查询嵌套过深、视图套视图等。]]></description><category></category></item><item><title><![CDATA[死锁的基本了解]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163951417</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163951417</guid><author>llll_llll0xff</author><pubDate>Fri, 21 Aug 2026 17:29:18 +0800</pubDate><description><![CDATA[死锁的本质是：多个事务互相持有对方所需要的资源，形成循环等待，导致所有事务都无法继续执行。只有以下四个条件同时满足，才会发生死锁：
在输出中找到 LATEST DETECTED DEADLOCK 部分，其中会显示：
然后查看 MySQL 错误日志（如 ），搜索  关键字，可看到所有死锁记录（而不仅是最近一次）。

方法四：专业工具

Percona Toolkit 的 ：实时监控并记录死锁详情到日志
云数据库管理服务（如天翼云 DMS）：支持 MDL 锁、行锁及死锁的自动化分析与源头定位

解决方法
1. ]]></description><category></category></item><item><title><![CDATA[锁的基本学习]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163951387</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163951387</guid><author>llll_llll0xff</author><pubDate>Fri, 21 Aug 2026 17:28:14 +0800</pubDate><description><![CDATA[锁是计算机协调多个进程或线程某一资源的机制。在数据库中，锁用于实现事务的并发控制，保证多个事务并发操作同一份数据时的一致性与隔离性。]]></description><category></category></item><item><title><![CDATA[了解索引以及原理]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163779436</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163779436</guid><author>llll_llll0xff</author><pubDate>Sat, 15 Aug 2026 14:11:40 +0800</pubDate><description><![CDATA[索引是数据库中对表中一列或多列的值进行排序的一种数据结构。]]></description><category></category></item><item><title><![CDATA[Spring WebClient简单使用]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163758346</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163758346</guid><author>llll_llll0xff</author><pubDate>Fri, 14 Aug 2026 16:32:59 +0800</pubDate><description><![CDATA[WebClient 是 Spring 5 引入的一个非阻塞、响应式的 HTTP 客户端，属于 Spring WebFlux 框架的一部分，是官方推荐的 RestTemplate 现代化替代方案。查天气必须先拿到经纬度：Open-Meteo 只认经纬度，不认地名或 IP地名 -> 经纬度：用 geocoding API；IP -> 经纬度：用 ip-api.com用flatMap串联「先定位、再查天气」两步异步操作用UriBuilder拼接 URL，自动处理中文编码。]]></description><category></category></item><item><title><![CDATA[常用配置文件-Java]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163745391</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163745391</guid><author>llll_llll0xff</author><pubDate>Fri, 14 Aug 2026 11:40:46 +0800</pubDate><description><![CDATA[通俗来说，配置文件就是程序在启动或运行时所需信息的文件。在不同类型的配置文件中，这些信息有不同的格式。]]></description><category></category></item><item><title><![CDATA[tomcat的初步学习使用]]></title><link>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163732880</link><guid>https://blog.youkuaiyun.com/llll_llll0xff/article/details/163732880</guid><author>llll_llll0xff</author><pubDate>Thu, 13 Aug 2026 19:45:08 +0800</pubDate><description><![CDATA[对于 StandardContext，启动过程是 Web 应用初始化的核心：- WebappLoader.start()：启动 Web 应用的类加载器- Manager.start()：启动 Session 管理器- filterStart()：初始化所有 Filter（调用 Filter.init()）- loadOnStartup()：收集 web.xml 中 load-on-startup >= 0 的 Servlet，按数值从小到大排序后  依次调用 wrapper.load()。]]></description><category></category></item></channel></rss>