JVM
文章平均质量分 93
忧郁的叮当猫
路虽远,行则将至;书虽难,学则必成。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
垃圾回收器之CMS和G1的比较
CMSCMS:以获取最短回收停顿时间为目标的收集器,基于并发“标记清理”实现过程:1、初始标记:独占CPU,stop-the-world,仅标记GCroots能直接关联的对象,速度比较快2、并发标记:可以和用户线程并行执行,通过GCRoots Tracing标记所有可达对象3、重新标记:独占CPU(STW),stop-the-world,对并发标记阶段用户线程运行产生的垃圾对象进行标记修正,以及更新逃逸对象4、并发清理:可以和用户线程并行执行,清理在重复标记中被标记为可回收的对象转载 2021-11-16 17:52:30 · 3616 阅读 · 0 评论 -
内存屏障问题
内存屏障是硬件之上、操作系统或JVM之下,对并发作出的最后一层支持。再向下是是硬件提供的支持;向上是操作系统或JVM对内存屏障作出的各种封装。内存屏障是一种标准,各厂商可能采用不同的实现。本文仅为了帮助理解JVM提供的并发机制。首先,从volatile的语义引出可见性与重排序问题;接下来,阐述问题的产生原理,了解为什么需要内存屏障;然后,浅谈内存屏障的标准、厂商对内存屏障的支持,并以volatile为例讨论内存屏障如何解决这些问题;最后,补充介绍JVM在内存屏障之上作出的几个封装。为转载 2021-05-21 15:18:43 · 1034 阅读 · 1 评论 -
JMM和底层实现原理
线程之间的通信线程之间的通信机制有两个种,共享内存 和 消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的发送消息来显式进行通信,在java中典型的消息传递方式就是wait()和notify()。线程间的同步同步是指程序用于控制不同线程之间操作发生相对顺序的机制。在共享内存并发模型里,同步是显式进行的转载 2021-05-20 19:12:28 · 879 阅读 · 0 评论
分享