![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
juzicha
这个作者很懒,什么都没留下…
展开
-
JVM模式
[root@localhost ~]# java -server -versionjava version "1.7.0_75"OpenJDK Runtime Environment (rhel-2.5.4.2.el7_0-x86_64 u75-b13)OpenJDK 64-Bit Server VM (build 24.75-b04, [b]mixed [/b]mode)[r...2015-12-07 16:09:39 · 85 阅读 · 0 评论 -
HSDIS
[code="java"]root@ubuntu:~/Downloads# ./jdk1.6.0_45/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+DebugNonSafepoints HelloWorldHello OpenJDK-1[/code][code="java"]root@ubunt...2015-12-08 11:06:28 · 1192 阅读 · 0 评论 -
HSDIS对volatile的浅析
HSDIS有什么用?用来看汇编,有用么? 答案是有用的。举个最简单的例子,volatile,是java关键字,那在汇编层面是如何做的呢?示例代码:[code="java"]import java.util.*;public class VolatileTest { public volatile long value = 0; ...2015-12-09 22:57:58 · 161 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记一
[b]上下文切换[/b]线程执行时需要分配CPU资源,CPU按照时间片分给线程执行,在线程时间片用完的情况下,需要保存现场,将执行权转让给其他线程。当该线程重新有机会执行时,需要加载之前的现场信息,然后执行。 从保存现场 到下次加载执行, 就是一次上下文切换,英文叫: context switch在linux中,可以通过vmstat来查看系统的context switch次...原创 2016-01-29 09:26:26 · 165 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记二
[b]java的对象构成[/b]对于JVM来说,构造JAVA对象时,是以oops-klass二分模型来构建的,其中oops表示对象的相关信息。基本结构如下:class oopDesc { friend class VMStructs;private: volatile markOop _mark; union _metadata { w...2016-01-29 09:31:01 · 107 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记三
[b]synchronized的解析[/b]synchronized是使用对象作为mutex的,按照之前的介绍,相关信息存储在mark字段中,具体参考前面的描述。这里分析一种简单的场景,2个线程基于同一个对象进行同步,跟踪下具体的sys call。源码如下:[code="java"]public class SynchronizedViewDemo { pub...2016-01-29 09:42:25 · 305 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记四
数组的可见性,与 数组元素 的可见性,是否是一回事? 比如private volatile int[] data; 这里的volatile,是保证data字段的可见性,那对于data里的元素,比如data[18],是否也有volatile的语义呢? 看如下代码package learn.concurrency.jcip;import java.util.con...原创 2016-03-17 23:37:24 · 181 阅读 · 0 评论