volatile用法关键字volatile是Java提供的最轻量级的同步机制,Java内存模型对volatile专门定义了一些特殊的访问规则。下面我们就看它的规则:当一个变量被volatile修饰后,它将具备以下两种特性。1.线程可见性:当一个线程修改了被volatile修饰的变量后,无论是否加锁,...
分类:
其他好文 时间:
2015-12-16 10:49:45
阅读次数:
156
一、共享变量在线程间的可见性可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是几个线程的共享变量。Java内存模型(Java Memory Model):描述了Java程序中各种变量(线程共享变量)的访问规则,以及在...
分类:
编程语言 时间:
2015-12-07 10:28:32
阅读次数:
140
1.Java内存模型(Java Memory Model) Java内存模型(JMM),不同于Java运行时数据区,JMM的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中读取数据这样的底层细节。JMM规定了所有的变量都存储在主内存中,但每个线程还有自己的工作内存(.....
分类:
编程语言 时间:
2015-12-06 01:39:27
阅读次数:
193
想要了解Java锁机制、引发的线程安全问题以及数据一致性问题,有必要了解内存模型,机理机制了解清楚了,这些问题也就应声而解了。一、主内存和工作内存 Java内存模型分为主内存和工作内存,所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用到变量的主内存副本...
分类:
编程语言 时间:
2015-11-28 15:07:54
阅读次数:
173
最近在看《深入理解Java虚拟机:JVM高级特性与最佳实践》讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范。系统的看了jsr 133规范的前面几个章节的内容,觉得受益匪浅。废话不说,简要的介绍一下java内存规范。什么是内存规范在jsr-133中是这么定义的...
分类:
编程语言 时间:
2015-11-21 00:44:30
阅读次数:
206
转于http://m.blog.csdn.net/blog/haolongabc/7249098浅谈java内存模型 不同的平台,内存模型是不一样的,但是jvm的内存模型规范是统一的。其实java的多线程并发问题最终都会反映在java的内存模型上,所谓线程安全无非是要控制多个线程对某个资源的有序访问...
分类:
编程语言 时间:
2015-11-19 20:42:50
阅读次数:
190
搞Java开发的,经常会碰到下面两种异常: 1、java.lang.OutOfMemoryError: PermGen space? 2、java.lang.OutOfMemoryError: Java heap space? 要详细解释这两种异常,需要简单重提下Java内存模型。 Java内存模型...
分类:
其他好文 时间:
2015-11-13 16:02:07
阅读次数:
214
http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、...
分类:
编程语言 时间:
2015-11-05 20:41:14
阅读次数:
242