2025年11月10日

AQS 是什么?

摘要: AQS 是什么? java.util.concurrent.locks.AbstractQueuedSynchronizer,简称 AQS,是 JUC 同步器的底座。像 ReentrantLock、Semaphore、CountDownLatch、ReentrantReadWriteLock、Sta 阅读全文

posted @ 2025-11-10 14:38 滚动的蛋 阅读(11) 评论(0) 推荐(0)

volatile关键词:Java 可见性问题详解与示例:为什么线程写了值,另一个线程却看不见?

摘要: Java 可见性问题详解与示例:为什么线程写了值,另一个线程却看不见? 在多线程编程中,你可能遇到这样一个匪夷所思的现象: 一个线程明明修改了变量,另一个线程却迟迟“看不到”变化,一直在死循环。这并不是 Java 的 bug,而是 Java 内存模型(JMM) 中“可见性”问题的直接体现。 本文用一 阅读全文

posted @ 2025-11-10 13:28 滚动的蛋 阅读(43) 评论(0) 推荐(0)

Java 中 double 的精度问题,以及为什么 BigDecimal 没有这个问题

摘要: Java 中 double 的精度问题,以及为什么 BigDecimal 没有这个问题 当你在 Java 中写出: System.out.println(0.1 + 0.2); // 0.30000000000000004 是不是很诧异?这不是 Java 的“bug”,而是计算机数值表示方式导致的。 阅读全文

posted @ 2025-11-10 03:40 滚动的蛋 阅读(130) 评论(0) 推荐(0)

synchronized` 的“锁升级/路径解析

摘要: synchronized` 的“锁升级/路径 为什么会升级?什么时候升级?升级后发生了什么?该怎么写代码更高效? 0. 先给一个总图(JDK 17+ 的主线) 无锁 → 轻量级锁(用户态 CAS + 自旋) → 重量级锁(ObjectMonitor,阻塞/唤醒) JDK 15 起“偏向锁”已移除,所 阅读全文

posted @ 2025-11-10 02:46 滚动的蛋 阅读(15) 评论(0) 推荐(0)

什么是锁的可重入性?

摘要: 什么是锁的可重入性? 锁的“可重入性”(reentrancy)指:同一线程在已经获得某把锁的情况下,可以“再次”获得这把锁而不会被自己阻塞。实现上通常会为锁维护“持有线程 + 重入计数(hold count)”:同一线程每 lock()/进入一次同步块,计数+1;每次 unlock()/退出一次,计 阅读全文

posted @ 2025-11-10 02:25 滚动的蛋 阅读(19) 评论(0) 推荐(0)

CountDownLatch 与 CyclicBarrier 区别深度解析

摘要: CountDownLatch 与 CyclicBarrier 深度解析:并发编程中的“闸门”与“集合点” 在 Java 并发工具包 java.util.concurrent 中,CountDownLatch 与 CyclicBarrier 是最常用的两种线程同步辅助类。它们像是并发世界的两种“交通信 阅读全文

posted @ 2025-11-10 02:14 滚动的蛋 阅读(46) 评论(0) 推荐(0)

导航