`
sslaowan
  • 浏览: 379537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Volalile

    博客分类:
  • Java
 
阅读更多

 该关键字的主要作用是保证可见性,主要做法是禁用编译器优化,不会从寄存器和Cache获得值,只会从Memory获得值。避免多核的情况下,由于每个CPU核都有自己独立的寄存器和Cache,因此对于寄存器而言,不会同步,对于L1,L2而言,具有同步时差。会造其他CPU中跑得线程看不到结果。CPU有类似MTTR的机制,可以控制是否缓存,另外OS可以通过控制Page Cache来控制硬件Cache是否缓存数据。

 

参考文献:

http://jeremymanson.blogspot.jp/2008/11/what-volatile-means-in-java.html

下面都是讲C语言中的,但是由于JVM底层是用C/C++实现,因此有参考意义。

http://stackoverflow.com/questions/7872175/c-volatile-variables-and-cache-memory

http://en.allexperts.com/q/C-1587/volatile.htm

http://www.cnblogs.com/gpcuster/archive/2007/11/12/956626.html

 

 

分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    ### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....

    Java2Pas Java代码转pas代码

    Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...

    JAVA API官方中文版手册chm文件文档

    JAVA API官方文档中文版软件包 java.applet java.awt java.awt.color java.awt.datatransfer java.awt.dnd java.awt.event java.awt.font java.awt.geom java.awt.im java.awt.im.spi java.awt.image ...

    Java 中文入门学习手册合集[chm版]

    第一章 Java语言的产生及其特点 第二章 Java程序开发与运行环境 第三章 Java程序设计基础 第四章 Java应用程序的基本框架 第五章 Java的类 第六章 Java图形用户接口 第七章 多线程 第八章 Java的"异常" 第九...

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    java转js工具

    Java到JavaScript转换工具有助于开发者将已有的Java代码库移植到JavaScript环境中,这在Web开发中尤其有用,因为JavaScript是浏览器端的主要脚本语言。这样的工具能够帮助开发者利用Java的强大功能来构建前端应用,...

    java 17 window 安装包

    Java 17是Java开发工具集(Java Development Kit)的一个主要版本,对于Windows操作系统提供了全面的支持。这个安装包是专为在Windows x64平台上运行和开发Java应用程序设计的。让我们深入了解一下Java 17以及如何在...

    自考java 04747《Java语言程序设计(一)》教材电子版

    《Java语言程序设计(一)》是自考Java专业的一门重要课程,旨在帮助学习者掌握Java编程的基础知识和技能。这门课程涵盖了Java语言的基本语法、数据类型、控制结构、类与对象、异常处理、输入输出以及简单的多线程...

    javacv所有jar包-java

    从javacv-platform-1.3.3-bin.zip中抽出来的:javacpp.jar、javacv.jar、javacv-platform.jar、opencv.jar、opencv-android-arm.jar、opencv-android-x86.jar、opencv-linux-armhf.jar 、opencv-linux-ppc64le.jar、...

    Java嵌入谷歌内核简单浏览器

    Java嵌入谷歌内核简单浏览器是一种技术实现,它允许开发者在Java应用程序中集成谷歌的Chromium Embedded Framework(CEF),从而创建具有现代Web浏览功能的应用。CEF是一个开源项目,它为各种编程语言提供了一个轻量...

    疯狂Java实战演义【书+源码】(疯狂Java讲义课后习题项目)

    《疯狂Java实战演义》是一本深度探讨Java编程技术的书籍,它包含了丰富的实践项目和课后习题,旨在帮助读者提升Java编程能力并深入理解Java核心技术。书中的源码是作者精心设计和编写的,提供了详尽的示例,以便读者...

    java摄像头读取二维码(整个java项目)

    Java摄像头读取二维码是一项在物联网和移动应用中常见的技术,它允许通过摄像头捕获图像,然后解析其中的二维码信息。本项目提供了一个完整的Java解决方案,包括了必要的代码和配置,以便开发者可以快速理解和实现...

    Java OCR 图像智能字符识别技术,可识别中文

    Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...

    Java基础 学习笔记 Markdownr版

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性,灵活性和安全性。本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,...

    Java调用SPSS的实例

    Java调用SPSS的实例是将Java编程语言与统计分析软件SPSS(Statistical Product and Service Solutions)结合使用的典型应用。SPSS提供了Java接口,使得开发者可以利用Java代码执行SPSS的数据处理和分析任务,无需...

    java安装包(Windows64位)

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在Windows 64位操作系统上运行和开发Java程序,你需要Java Development Kit(JDK)。JDK是Java编程的基础,它包含了编译器、调试工具...

Global site tag (gtag.js) - Google Analytics