03 2025 档案

摘要:一、底层原理 在 MySQL 8.0 中,当使用 LIMIT offset, count 进行分页查询时,如果 offset 非常大(例如 LIMIT 200000, 10),性能会显著下降。 这是因为 MySQL 需要扫描 offset + count 行数据,然后丢弃前 offset 行,只返回 阅读全文
posted @ 2025-03-12 21:54 jock_javaEE 阅读(0) 评论(0) 推荐(0) 编辑
摘要:步骤一、启用慢查询日志 慢查询日志是MySQL记录执行时间超过指定阈值的SQL语句 配置慢查询日志 在MySQL配置文件(如my.cnf或my.ini)中设置以下参数: slow_query_log:是否启用慢查询日志 slow_query_log_file:指定慢查询日志文件的保存位置 long_ 阅读全文
posted @ 2025-03-11 16:32 jock_javaEE 阅读(6) 评论(0) 推荐(0) 编辑
摘要:一、ThreadLocal 内存泄漏的原因 ThreadLocal 的内存泄漏问题主要与其底层实现 ThreadLocalMap 的结构和垃圾回收机制有关。以下是核心原因: 1、ThreadLocalMap 的 Entry 设计 键(Key)是弱引用:ThreadLocalMap 中的键(Key)是 阅读全文
posted @ 2025-03-04 16:47 jock_javaEE 阅读(27) 评论(0) 推荐(0) 编辑
摘要:一、定义 CyclicBarrier 的 await() 方法是其核心功能之一,用于让线程在屏障点等待,直到所有参与的线程都到达屏障后,才能继续执行。 其底层实现依赖于 AQS(AbstractQueuedSynchronizer) 和 ReentrantLock,以下是 await() 方法的底层 阅读全文
posted @ 2025-03-03 21:32 jock_javaEE 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、release() 方法代码解析 当调用 release() 方法时,实际调用的是 AQS 的 releaseShared(1) 方法。以下是其详细工作流程: public final boolean releaseShared(int arg) { if (tryReleaseShared(a 阅读全文
posted @ 2025-03-03 15:38 jock_javaEE 阅读(1) 评论(0) 推荐(0) 编辑
摘要:一、acquire() 的工作流程 当调用 acquire() 方法时,实际调用的是 AQS 的 acquireSharedInterruptibly(1) 方法。以下是其详细工作流程: // acquire() -> sync.acquireSharedInterruptibly(1),可中断 p 阅读全文
posted @ 2025-03-03 15:03 jock_javaEE 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一、简单使用 在聊它的源码之前,我们先来做个简单的使用说明。当我在IDEA中创建了一个简单的Demo之后,它会给出以下提示 提示文字 在使用阻塞等待获取锁的方式中,必须在try代码块之外,并且在加锁方法与try代码块之间没有任何可能抛出异常的方法调用,避免加锁成功后,在finally中无法解锁。 1 阅读全文
posted @ 2025-03-01 23:38 jock_javaEE 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、CountDownLatch的构造方法 // 创建倒数闩,设置倒数的总数State的值 CountDownLatch doneSignal = new CountDownLatch(N); 二、countDown() 方法的作用 countDown() 方法的主要作用是将 CountDownLa 阅读全文
posted @ 2025-03-01 21:46 jock_javaEE 阅读(3) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示