![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
牛八里昂
这个作者很懒,什么都没留下…
展开
-
volatile底层理解
并发编程中,最常用的两种机制:Synchronized和Volatile;Synchronized是共享资源在并发情况下常用方法来保证数据一致。Volatile是java虚拟机提供的最轻量级的同步机制主要适用于读多写少的场景,作用有一、保证共享变量可见性,二、内存屏障禁止指令重排序。volatile可见性说volatile可见性前,需要先了解java的内存模型,也就是JMM;问题如果多个线程同时去内存读取共享变量到各自的私有内存再做处理,那么多个线程彼此是不知道对共享变量做了什么操作的,可能就会导原创 2020-07-19 23:29:46 · 357 阅读 · 0 评论 -
CMS流程
口诀法:C初并重清(初始标记、并发标记、重新标记、并发清除)整个过程分为 4 个步骤,包括:初始标记 :仅仅只是标记一下 GCRoots 能直接关联到的对象,速度很快,需要停顿(STW-Stoptheworld)。并发标记:从 GCRoot 开始对堆中对象进行可达性分析,找到存活对象,它在整个回收过程中耗时最长,不需要停顿。重新标记:为了修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,需要停顿(STW)。这个阶段的停顿时间一般 会比初始标记阶段稍长一些,但远比并发标记的原创 2020-07-16 14:12:20 · 1509 阅读 · 0 评论 -
jmat 内存分析
1.导出内存快照 jmap -dump:format=b,file=basic.dump pid2.安装jmat https://www.eclipse.org/mat/downloads.php3.分析内存 https://blog.csdn.net/u012415035/article/details/82218322原创 2019-12-20 14:46:23 · 1570 阅读 · 0 评论