<
一枝梅的博客
博客
随笔
软件
专题
标签
留言板
开往
java
共66篇
详解AQS二:ReentrantLock公平锁原理
ReentrantLock作为我们使用频率最高的显式锁,它是AQS的经典实现,本篇文章将以ReentrantLock公平锁为例讲解AQS的实现。 一、ReentrantLock 在之前的文章《线程同步机制一:内部锁和显式锁》中已经提到过关于显式锁...
#java
#多线程编程
一枝梅
1年前
889
详解AQS一:CLH队列锁
AQS(AbstractQueuedSynchronizer)抽象队列同步器是Java中用于构建同步器(synchronizer)的框架,提供了一种基于FIFO等待队列的抽象框架,JAVA中的很多显式锁底层实现都使用了该框架:ReentrantL...
#java
#多线程编程
一枝梅
1年前
952
java线程间通信:等待通知机制
在多线程编程中,不同线程可能需要相互协作、共享数据,线程间通过某种方式互相告知自己的状态,以避免无效的资源争夺,这就是线程间通信。线程间通信的目的是确保多个线程能够有效地协调工作,以完成特定任务或避免数据不一致性。 线程间通信的方式可以有很多种:...
#java
#多线程编程
一枝梅
1年前
721
hashCode方法的调用对Java锁的影响
从上一篇文章《深入理解偏向锁、轻量级锁、重量级锁》中已经介绍了关于锁升级相关的知识,在其中研究偏向锁的过程中,无意中调用了hashCode方法,然后锁的状态发生了明显不符合预期的变化。 一、偏向锁回顾 首先看下偏向锁的案例,这个之前已经介绍过了,...
#java
#多线程编程
一枝梅
1年前
659
详解CAS操作的ABA问题
一、ABA问题 CAS原子操作虽然好,但是出生就自带ABA问题,那么什么是ABA问题?CAS的全称叫做Compare and swap,也就是比较和交换,ABA问题就出现在"Compare"比较阶段。 举个例子,X变量的值是10,现在线程A要对X...
#java
#多线程编程
一枝梅
1年前
841
CAS原子类:LongAdder源码解析
LongAdder类直译过来名字叫做“原子加法器”,它是JDK1.8才出现的新类,它的作用是替代AtomicLong类在某些并发场景下的使用,使得程序运行效率更高。 在之前的《线程同步机制二:CAS原理和JUC原子类》文章中,已经简单介绍过该类的...
#java
#多线程编程
一枝梅
1年前
642
CAS原子类:AtomicInteger源码解析
一、AtomicInteger的使用 先回顾下AtomicInteger常用方法: 方法名 方法描述 public final int get() 获取当前对象的值 public final int getAndSet(int ...
#java
#多线程编程
一枝梅
1年前
703
伪共享(False Sharing)
伪共享的定义:伪共享(False Sharing) 是指多个处理器核心或线程在并发执行时,由于共享相同缓存行而导致不必要的性能下降的现象。当多个处理器核心或线程同时访问共享的内存区域,即使它们在不同的变量上操作,但这些变量处于同一个缓存行中,会导...
#多线程编程
#java
一枝梅
1年前
675
微基准测试工具JMH
JMH是Java Micro Benchmark Harness的简写,是专门用于代码微基准测试的工具集(toolkit)。JMH是由实现Java虚拟机的团队开发的,因此他们非常清楚开发者所编写的代码在虚拟机中将会如何执行。 由于现代JVM已经变...
#jmh
#多线程编程
#java
一枝梅
1年前
800
CAS原子类:AtomicLongArray源码解析
AtomicLongArray内部维护了一个int类型的数组,需要先复习下数组对象的在内存中的结构,这对接下来对数组类型原子类的理解至关重要。 一、数组对象的内存结构 我们运行以下代码并将数组对象的内存结构通过JOL工具打印出来,关于这部分知识,...
#java
#多线程编程
一枝梅
1年前
552
1
2
3
4
...
7
阅读榜单
27328人浏览
Redis(十三):Caffeine+Redis高性能二级缓存实现
TOP1
IntelliJ IDEA 2025.2 Maven设置不生效的解决方案
6月前
18820人浏览
TOP2
Spring Security OAuth2.0认证授权一:框架搭建和认证测试
5年前
17013人浏览
TOP3
Redis(十二):Java客户端之Spring Data Redis
8月前
16222人浏览
TOP4
Java8升级的一点思考
8月前
15434人浏览
TOP5
Spring Security OAuth2.0认证授权四:分布式系统认证授权
5年前
7871人浏览
TOP6
最新发布
狂盗一枝梅
2026-04-08
3481次阅读
留言
解决Windows命令行cmd中文乱码问题
一、乱码现象 最近使用DataX迁移数据的时候命令行中文输出乱码了,如下所示: 这是因为DataX程序是使用UTF-8编码开发、打包的,而Windows命令行默认使用的不是UTF-8编码, 命令行属性中可以看到,默认使用的是GBK编码,所以产...
软件
评分
回复
狂盗一枝梅
2026-04-02
5880次阅读
留言
记一次Mybatis查询中的数组越界异常
最近遇到了一件极其诡异的Mybatis查询数组越界异常(java.sql.SQLException: java.lang.ArrayIndexOutOfBoundsException)的问题,排查了一天,最终解决了该问题。 一、问题描述 Mapp...
随笔
评分
回复
狂盗一枝梅
2026-04-02
5971次阅读
留言
IDEA远程Debug
线上出了问题,但是本地不能重现,可以通过IDEA远程Debug功能远程调试排查问题。具体操作如下: 一、本地IDEA配置 单击项目顶部“Edit Configurations” 新增运行配置:"Remote JVM Debug" 之后进入远程...
随笔
评分
回复