<
一枝梅的博客
博客
随笔
软件
专题
标签
留言板
开往
博客
共127篇
hashCode方法的调用对Java锁的影响
从上一篇文章《深入理解偏向锁、轻量级锁、重量级锁》中已经介绍了关于锁升级相关的知识,在其中研究偏向锁的过程中,无意中调用了hashCode方法,然后锁的状态发生了明显不符合预期的变化。 一、偏向锁回顾 首先看下偏向锁的案例,这个之前已经介绍过了,...
博客
#java
#多线程编程
一枝梅
8月前
337
深入理解偏向锁、轻量级锁、重量级锁
一、对象结构和锁状态 synchronized关键字是java中的内置锁实现,内置锁实际上就是个任意对象,其内存结构如下图所示 其中,Mark Word字段在64位虚拟机下占64bit长度,其结构如下所示 可以看到Mark Word字段有个很...
博客
#java
#多线程编程
一枝梅
8月前
314
详解CAS操作的ABA问题
一、ABA问题 CAS原子操作虽然好,但是出生就自带ABA问题,那么什么是ABA问题?CAS的全称叫做Compare and swap,也就是比较和交换,ABA问题就出现在"Compare"比较阶段。 举个例子,X变量的值是10,现在线程A要对X...
博客
#java
#多线程编程
一枝梅
8月前
381
CAS原子类:LongAdder源码解析
LongAdder类直译过来名字叫做“原子加法器”,它是JDK1.8才出现的新类,它的作用是替代AtomicLong类在某些并发场景下的使用,使得程序运行效率更高。 在之前的《线程同步机制二:CAS原理和JUC原子类》文章中,已经简单介绍过该类的...
博客
#java
#多线程编程
一枝梅
8月前
339
伪共享(False Sharing)
伪共享的定义:伪共享(False Sharing) 是指多个处理器核心或线程在并发执行时,由于共享相同缓存行而导致不必要的性能下降的现象。当多个处理器核心或线程同时访问共享的内存区域,即使它们在不同的变量上操作,但这些变量处于同一个缓存行中,会导...
博客
#多线程编程
#java
一枝梅
9月前
370
微基准测试工具JMH
JMH是Java Micro Benchmark Harness的简写,是专门用于代码微基准测试的工具集(toolkit)。JMH是由实现Java虚拟机的团队开发的,因此他们非常清楚开发者所编写的代码在虚拟机中将会如何执行。 由于现代JVM已经变...
博客
#jmh
#多线程编程
#java
一枝梅
9月前
368
CAS原子类:AtomicLongArray源码解析
AtomicLongArray内部维护了一个int类型的数组,需要先复习下数组对象的在内存中的结构,这对接下来对数组类型原子类的理解至关重要。 一、数组对象的内存结构 我们运行以下代码并将数组对象的内存结构通过JOL工具打印出来,关于这部分知识,...
博客
#java
#多线程编程
一枝梅
9月前
315
CAS原子类:AtomicInteger源码解析
一、AtomicInteger的使用 先回顾下AtomicInteger常用方法: 方法名 方法描述 public final int get() 获取当前对象的值 public final int getAndSet(int ...
博客
#java
#多线程编程
一枝梅
9月前
408
线程同步机制二:CAS原理和JUC原子类
一、CAS原理 CAS(Compare And Swap),也就是“比较并交换”,它是一种CPU指令级的原子操作。CAS 操作常用于解决并发环境下的竞态条件和实现线程安全的数据操作。它的基本操作流程如下: 比较阶段:CAS 首先会比较内存位置...
博客
#java
#多线程编程
一枝梅
9月前
421
深入理解Java对象结构
一、Java对象结构 实例化一个Java对象之后,该对象在内存中的结构是怎么样的?Java对象(Object实例)结构包括三部分:对象头、对象体和对齐字节,具体下图所示 1、Java对象的三部分 (1)对象头 对象头包括三个字段,第一个字段叫作...
博客
#java
#多线程编程
#jvm
一枝梅
9月前
467
1
...
3
4
5
...
13
阅读榜单
20320人浏览
主路由、旁路由、单臂路由的区别
TOP1
若依管理系统RuoYi-Vue(二):权限系统设计详解
4年前
14416人浏览
TOP2
若依管理系统RuoYi-Vue(一):项目启动和菜单创建
4年前
13517人浏览
TOP3
若依管理系统RuoYi-Vue(三):代码生成器原理和实战
4年前
11331人浏览
TOP4
Spring Security OAuth2.0认证授权一:框架搭建和认证测试
4年前
9980人浏览
TOP5
完整优雅的卸载腾讯云云服务器安全监控组件云镜
4年前
7113人浏览
TOP6
最新发布
狂盗一枝梅
2025-07-08
16次阅读
留言
Redis(六):Redis整合Lua
lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 一、使用Lua脚本的好处 Redis与Lua脚本的整合为开发者提供了一种在Redis服务器端执行复杂逻...
博客
评分
回复
狂盗一枝梅
2025-07-03
35次阅读
留言
Redis(五):Redis Stream
在之前的文章《Redis(二):Redis消息队列》中已经介绍过Redis中使用List以及发布订阅两种模式实现的消息队列,其中发布订阅模式比List模式功能更强大,但是有很大的缺陷: 消息没有持久化,如果消费者断线重连,消息会丢失 没有ack...
博客
评分
回复
狂盗一枝梅
2025-07-01
39次阅读
留言
Redis(四):Redis扩展类型Bitmap、HyperLogLog、GEO
在前面第一篇文章中介绍了redis中的string、hash、list、set、zset五种基本数据类型,除了这五种基本数据类型,还有位图(Bitmap)、基数估算(HyperLogLog)、地理位置(GEO)三种扩展数据类型。 一、位图Bitm...
博客
评分
回复