java垃圾回收

  jvm 虚拟机栈,每一个线程运行时都有一个线程栈,每个线程栈保存了线程运行时候变量值信息。

  当线程访问某一个对象的值的时候,首先通过对象的引用栈找到对应的堆内存的变量的值,然后把堆内存变量的具体值load到线程本地内存中,建立一个变量副本,之后线程就不再和对象在堆内存变量值有任何关系,而是直接修改副本变量的值,在修改完后的某个时刻(线程退出之前),自动将线程变量副本的值写到对象在堆中变量。这样堆中的对象的值就产生变化了。

下面一幅图描述这写交互

 

java volatile1

 

 

Java 关键字 volatile

用volatile关键字修饰的变量,线程在每次使用的时候,都会都变量修改后的最新值。

 

参考链接:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html

http://www.ibm.com/developerworks/cn/java/j-jtp06197.html

posted @ 2016-06-21 11:47  panie2015  阅读(139)  评论(0编辑  收藏  举报