jvm
lpf463061655
不想秃头
展开
-
干掉面试官3-CPU中的缓存、缓存一致性、伪共享和缓存行填充
文章目录1、 CPU缓存2、 总线锁和缓存锁3、 缓存行4、 缓存一致性协议(如:MESI)5、 伪共享(false sharing)问题6、 伪共享解决方案(如:缓存行填充)6.1 Disruptor为什么这么快?6.2 实验证明6.3 Jdk8中自带注解@Contended7、 总结本篇文章主要介绍CPU缓存相关的内容。 亦是上一遍文章volatile底层原理详解(上) 的延伸和补充。...原创 2020-04-23 23:07:05 · 2197 阅读 · 10 评论 -
干掉面试官2-volatile底层原理详解
文章目录一、volatile的作用1.1、volatile变量的可见性1.2、volatile变量的禁止指令重排序二、volatile的的底层实现2.1、 Java代码层面2.2、字节码层面2.3、JVM源码层面2.4、汇编层面2.5、硬件层面volatile关键字是Java虚拟机提供的最轻量级的同步机制。在多线程编程中volatile和synchronized都起着举足轻重的作用,没有这两者,...原创 2020-04-20 22:02:55 · 1493 阅读 · 0 评论 -
干掉面试官1-synchronized底层原理(从Java对象头说到即时编译优化)
要想理解透synchronized,还要从Java对象头说起。要想能直观的观察到内存布局还要借助一些工具。一、两个好用却不被熟知的工具1.1、字节码查看插件(jclasslib Bytecode viewer)常规观看Java类编译后的class文件的字节码较为复杂,需要将java类编译成class文件,再使用javap -verbose ***.class命令才能查看它的字节码。Idea...原创 2020-03-27 20:33:17 · 2130 阅读 · 1 评论