JVM
juzicha
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM模式
[root@localhost ~]# java -server -version java 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 · 136 阅读 · 0 评论 -
HSDIS
[code="java"]root@ubuntu:~/Downloads# ./jdk1.6.0_45/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly -XX:+DebugNonSafepoints HelloWorld Hello OpenJDK -1[/code] [code="java"]root@ubunt...2015-12-08 11:06:28 · 1817 阅读 · 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 · 221 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记一
[b]上下文切换[/b] 线程执行时需要分配CPU资源,CPU按照时间片分给线程执行,在线程时间片用完的情况下,需要保存现场,将执行权转让给其他线程。当该线程重新有机会执行时,需要加载之前的现场信息,然后执行。 从保存现场 到下次加载执行, 就是一次上下文切换,英文叫: context switch 在linux中,可以通过vmstat来查看系统的context switch次...原创 2016-01-29 09:26:26 · 217 阅读 · 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 · 159 阅读 · 0 评论 -
《Java并发编程的艺术》读书笔记三
[b]synchronized的解析[/b] synchronized是使用对象作为mutex的,按照之前的介绍,相关信息存储在mark字段中,具体参考前面的描述。 这里分析一种简单的场景,2个线程基于同一个对象进行同步,跟踪下具体的sys call。 源码如下: [code="java"]public class SynchronizedViewDemo { pub...2016-01-29 09:42:25 · 377 阅读 · 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 · 246 阅读 · 0 评论
分享