volatile · 百科
volatile是一个类型修饰符(type specifier),被设计用来修饰被不同线程访问和修改的变量。在程序设计中,尤其是在C语言、C++、C#和Java语言中,使用volatile关键字声明的变量或对象通常拥有和优化和(或)多线程相关的特殊属性。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。

释 义:易变的 

属 性:类型修饰符 

volatile-夸克翻译
[化学] 挥发性的常用释义
例句:
Petrol is a volatile substance.
汽油是挥发性物质。
短语:
拍照搜题
拍照翻译
当前版本不支持该功能
请升级至最新版本
取消
去更新
相关推荐
volatile · 精选文章
volatile的相关视频
一看就会
03:44
Tim
【Java面试题】volatile的作用
23:45
该用户快成仙了
骨灰级大佬马士兵亲授:五层实现详解Volatile
01:31
虐人狂魔墨菲
几何冲刺#Volatile超有节奏的一关
02:27
铅笔英语奇文老师
一分钟记单词:volatile 易挥发的,不稳定的
图书知识聚合
在7本书中找到答案
  • 《Java多线程编程实战指南(核心篇)》
    章节3.8 轻量级同步机制:volatile 关键字
    volatile 关键字表示被修饰的变量的值容易变化(即被其他线程更改),因而不稳定。volatile 变量的不稳定性意味着对这种变量的读和写操作都必须从高速缓存或者主内存(也是通过高速缓存读取)中读取,以读取变量的相对新值。因此,volatile 变量不会被编译器分配到寄存器进行存储,对 volatile 变量的读写操作都是内存访问(访问高速缓存相当于主内存)操作。volatile 关键字常被称为轻量级锁,其作用与锁的作用有相同的地方:保证可见性和有序性。所不同的是,在原子性方面它仅能保障写 volatile 变量操作的原子性,但没有锁的排他性;其次,volatile 关键字的使用不会引起上下文切换(这是 volatile 被冠以「轻量级」的原因)。因此,volatile 更像是一个轻量级简易(功能比锁有限)锁。3.8.1 volatile 的作用volatile 关键字的作用包括:保障可见性、保障有序性和保障 long/double 型变量读写操作的原子性。约定访问同一个 volatile 变量的线程被称为同步在这个变量之上的线程,其中读取这个变量的线
    黄文海
    电子工业出版社
  • 《七周七并发模型》
    章节2.3 第二天:超越内置锁
    volatile是一种低级形式的同步。它并不能解决Counter的问题(参见2.2节的“第一把锁”部分),因为将count标记成volatile并不能保证count++操作是原子的。随着JVM被不断优化,其提供了一些低开销的锁,volatile变量的适用场景也越来越少。如果你考虑使用volatile,也许应当在java.util.concurrent.atomic包中寻找更合适的工具。第二天总结我们在第一天的基础上,学习了java.util.concurrent.locks包和java.util.concurrent.atomic包提供的更复杂更灵活的工具。学习和理解这些工具很重要,但经过第三天的学习后我们就会发现实际上很少会直接使用锁。第二天我们学到了什么ReentrantLock和java.util.concurrent.atomic突破了使用内置锁的限制,利用新的工
    【美】布彻,黄炎
    人民邮电出版社
  • 《并行算法设计与性能优化》
    章节7.2.5 volatile关键字
    volatile关键字 volatile的意思是“易变的”,C语言中的volatile效果是让编译器不要对这个变量的读写操作做任何优化,即不将其保存在缓存中,每次读的时候都直接去该变量的内存地址中去读,每次写的时候都直接写到该变量的内存地址中去,不做任何缓存优化。其典型的应用有下面几种: ·避免寄存器或缓存对内存读写的优化。编译器常把频繁读写的变量保存到寄存器或缓存中,不用时或被替换出寄存器或缓存时再保存到内存中。如果某个内存地址中的值可能被另一个线程或是另一个设备读写,此时需要volatile关键字以保证能够读写到最新值。 ·同一个物理内存地址可能有两个或多个不同的引用(存储器别名问题,如*x=malloc(size);y=x;)。例如两个控制流同时对同一个物理地址进行读写,那么编译器就不能假设这个地址只会有一个控制流访问而做缓存优化,所以程序员在这种情况下也需要把它定义为volatile的。
    刘文志
    机械工业出版社
  • 《深入理解Java 7:核心技术与最佳实践》
    章节11.1.3 volatile关键词
    volatile关键词 关键词volatile用来对共享变量的访问进行同步。对一个volatile变量的上一次写入操作和下一次读取操作之间存在“在之前发生”的顺序。也就是说,上一次写入操作的结果对下一次读取操作是肯定可见的。在写入volatile变量值之后,CPU缓存中的内容会被写回主存;在读取volatile变量时,CPU缓存中的对应内容被置为失效状态,重新从主存中进行读取。将变量声明为volatile相当于为单个变量的读取和写入添加了同步操作。但是volatile在使用时不需要利用锁机制,因此性能要优于synchronized关键词。关键词volatile的主要作用是确保对一个变量的修改被正确地传播到其他线程中。最常使用volatile变量的一个场景是把作为循环结束的判断条件的变量声明为volatile。比如有两个线程A和B,线程A在一个循环中不断进行处理,线程B负责向线程A发送停止处理的信号。代码清单11-3中给出了这样的示例。线程A调用了Worker类的对象的work方法,开始执行具体的任务。在适当的时候,线程B会调用同一Worker类的对象的setDone方法来声明终止任务的执行。把done变量声明为volatile是很重要的。
    成富
    机械工业出版社
  • 《C语言解惑》
    章节14.6 使用volatile变量
    volatile影响编译器编译的结果。如果没有volatile关键字,则编译器可能优化读取和存储,即在本次线程内,当读取一个变量时,为提高存取速度,编译器优化时会先把变量读取到一个寄存器中,以后再取变量值时,就直接从寄存器中取值。volatile则提醒编译器,用它所定义的变量随时都有可能发生变化,因此编译后的程序每次需要存储或读取这个变量的时候,都需要直接从变量地址中读取数据。【例14.20】分析下面函数能否实现延时的功能。void delay (void ) { int i ; int result ; for (i=0 ; i < 1863; ++i ) result = 12* 35 ; }【分析】不能。编译器知道12*35的结果为420,因此他没有做乘法而是通过优化处理直接给出“result=420”,从而关闭了计时功能。如果使用两个变量,及声明int num1 = 12 ,num2 = 35 ;使用语句res
    刘燕君,刘振安
    机械工业出版社
  • 《Linux环境编程:从应用到内核》
    章节15.6 小心volatile的原子性误解
    现在对volatile的理解就比较深刻了。volatile只能保证在访问该变量时,每次都是从内存中读取最新值,并不会使用寄存器中缓存的值。而对该变量的修改,volatile并不提供原子性的保证。
    高峰,李彬
    机械工业出版社
  • 《美语新诠2:谋杀英文》
    章节标志时代的符号Ⅰ
    volatile,“不稳定的”、“爆炸性的”。举凡中美和中东局势的动荡、证券市场的上下、民意的左右,以至一个人的脾气,都可说是volatile,令人捉摸不定,难以预测。gender gap,自ERA (Equal Rights Amendment,男女平权宪法修正案)运动失败以后,女权运动者又发现里根总统三年以来对于改革法律上男女不平等的现象,只是粉饰太平、口是心非。所谓gender gap(性的差距),依旧存在。我们早已解决了generation gap一词,大家沿用“代沟”的翻译。但gender gap怎样应付呢?“性别”吗?填表格时已司空见惯。“性沟”吗?要不得。“性差”也很费解。可见一名之立,相当不易。vibes,原是一种电颤敲打乐器vibraphone的简称,弹奏起来余音袅袅。现在时兴用来表示人与人之间的接触,能否发生一种“共鸣”作用。通常good
    【美】乔志高
    广西师范大学出版社
volatile是什么意思_volatile的翻译_音标_读音_用法_例句_爱词霸在线词典
爱词霸权威在线词典,为您提供volatile的中文意思,volatile的用法讲解,volatile的读音,volatile的同义词,...
图集 4
下一页 网络不给力?刷新试试