自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 双重检查锁定与延迟初始化

双重检查锁定的由来问题的根源基于volatile的解决基于类初始化的解决方案类或接口初始化的五个阶段第一阶段第二阶段第三阶段第四阶段小结在Java多线程程序当中,有时候需要采用延迟初始化来降低初始化类和创建对象的开销.双检查锁定是常见的延迟初始化结束,但他是一个错误的用法.双重检查锁定的由来在Java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并...

2019-09-06 19:15:26 212

原创 happens-before规则

happens-before是JMM最核心的概念。JMM的设计从JMM设计者的角度,在设计JMM时,需要考虑两个关键因素程序员对内存模型的使用.程序员希望内存模型易于理解,易于编程.程序员希望基于一个强内存模型来编写代码.编译器和处理器对内存模型的实现.编译器和处理器希望内存模型对它们的束缚越少越好,这样它们就可以做尽可能多的优化来提高性能.编译器和处理器就希望实现一个弱内存模型.由...

2019-09-06 17:33:12 253

原创 volatile的内存语义

volatile的内存语义volatile的特性volatile写-读建立的happens-before关系volatile写-读的内存语义volatile的写内存语义volatile读的内存语义volatile内存语义的实现volatile的内存语义volatile的特性理解volatile特性的一个好方法是把对volatile变量的单个读/写,看成是使用同一个...

2019-09-03 08:37:20 230 1

原创 锁的内存语义

锁的内存语义锁的释放-获取建立的happens-before关系锁是Java并发编程中最重要的同步机制.锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送信息.假设线程A执行writer()方法,随后线程B执行reader()方法.根据happens-before规则,这个过程happens-before关系可以分为3类.根据程序次序规则,1 happens-bef...

2019-09-03 08:34:42 171

原创 redis从海量的key里面查询出某一固定前缀的key

生成海量数据1.Linux Bash下面执行(一定要是Bash)for((i=1;i<=20000000;i++)); do echo "set k$i v$i" >> /tmp/redisTest.txt ;done;生成2千万条redis批量设置kv的语句(key=kn,value=vn)写入到/tmp目录下的redisTest.txt文件中2.用vim去掉行尾...

2019-08-29 21:37:39 5343 3

原创 Redis的数据类型即应用场景

String(最基本的数据类型,二进制安全)String是二进制安全的,也就是说redis的String可以包含任何数据类型,比如说JPG图像或者是序列化对象.String类型能存储的最大值是512MB.String就像是Java中的Map一样,一个Key对应一个Value基本用法:127.0.0.1:6380> set hello worldOK127.0.0.1:6380&g...

2019-08-29 21:37:00 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除