当前位置:  技术问答>java相关

请教volatile关键字的用法!!!

    来源: 互联网  发布时间:2015-02-17

    本文导语:  由于本人英语水平有限,我在《Java Language Specification Second Edition》看了几遍还是不能完全理解“volatitle”的具体用法,是不是限制线程互斥访问其修饰的变量?但那本书讲的好象没那么简单。请高手指教!! ...

由于本人英语水平有限,我在《Java Language Specification Second Edition》看了几遍还是不能完全理解“volatitle”的具体用法,是不是限制线程互斥访问其修饰的变量?但那本书讲的好象没那么简单。请高手指教!!

|
volatitle大概是为了“数据同步”,即保证内存中的数据(在不同的thread中的)可视性,
Doug Lea在> 2版中解释的较好,小衲我。。。
(咬咬牙)。。。咳咳咳咳咳。。。大概是这样的。。。

首先,Java有一个内存模型,这个模型是从Java程序员的眼里看到的,对CPU(单个或多个)/寄
存器/内cache/外cache/主内存/。。。/OS管理内存机制。。。等各方面的一个抽象,但这方面
的spec好象不是很多

根据这个模型,大概是有一个“主内存”,数据在“主内存”中有一个“主copy”,
每一个thread有一个“工作内存”,其中有该数据的“工作copy",在这里,这些
“主内存”/“工作内存”都是从Java看出去的抽象概念,不一定对应于一个硬件
或OS的实体

一个volatitle变量,在加上正确运用synchronized,应该是可以保证当这个变量在
某个thread中被改变了之后,这个变化对其他thread是”可视的“,即这个变量的”
主内存copy"和各个“工作copy”是同步刷新的

所以把一个变量定义为volatitle,在加上正确运用synchronized,理论上可以保证
这个变量在各个thread中都是一致的,这里变了,那里也就跟着变了。但实际上比较
复杂(特别是在不同的硬件/OS平台上,如4个intelCPU的nt40机器),最好还要加上
其他措施,和volatitle一起用,这样才能达到“数据同步”的目的

    
 
 

您可能感兴趣的文章:

  • 请教semop()函数的用法、含义
  • 请教一个古老的DOS程序——IMG的用法
  • 我是初学,请教大家gdb,dbx,makefile,cc的用法.
  • 请教java中的assert的用法
  • 请教花括号在脚本中的用法的含义
  • 请教finally关键字的用法
  • 请教exec系列函数的用法
  • 请教一个管道的用法
  • 请教 linux seteuid() 的用法
  • 请教FilterReader类的用法
  • 请教 关于STATIC的用法
  • 请教各位,关于sed的用法
  • 请教ubuntu系统里的crontab 的用法
  • 请教hummingbirds 的用法
  • 请教svn用法
  • 请教signal函数的用法!
  • 请教,关于fork的用法?
  • 请教大家一下linux下有关select模式的用法
  • 请教sed awk的用法详解,有命令说明的链接也不错,谢谢了
  • 请教redhat9.0中,xinetd还有hosts.allow/hosts.deny的用法
  • 新手请教 asm_volatile?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3