CSDN论坛 > Linux/Unix社区 > 应用程序开发区

请问:“volatile”是c语言的关键字么?有什么用处? [问题点数:50分,结帖人ghyd]

Bbs2
本版专家分:162
结帖率 100%
CSDN今日推荐
Bbs1
本版专家分:45
Bbs1
本版专家分:0
Bbs3
本版专家分:587
Bbs7
本版专家分:18977
Blank
红花 2003年7月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2003年6月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2004年7月 Linux/Unix社区大版内专家分月排行榜第三
2003年12月 Linux/Unix社区大版内专家分月排行榜第三
2003年9月 Linux/Unix社区大版内专家分月排行榜第三
Bbs2
本版专家分:162
匿名用户不能发表回复!
其他相关推荐
volatile的适用场景(面试问题:volatile有什么作用)
把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。 原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。可见性则更为微妙,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的。 —— 如果
关键字volatile是用来干什么的?
一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主...
关键字volatile有什么含意 并给出三个不同的例子
关键字volatile有什么含意 并给出三个不同的例子
volatile失效,慎重使用volatile关键字
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的: package mythread;   public class JoinThread ext
C语言中volatile的用法及意义
volatile 影响编译器编译的结果,volatile指出 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。) 例如:volatile int i=10; int j = i; ... int k = i;volatile 告
多线程---volatile关键字
在多线程中,volatile关键字是很重要的一个知识点,在多线程共享资源的时候,每个线程数据对外都是不可见的,这就容易出现”脏读”现象,其实就是线程私有堆栈中的数据和公共堆栈中的数据不同步造成的.解决这样的问题,就要使用volatile关键字了。 内存结构 有这个结构图,就能很清晰的知道为毛会造成数据的不同步了。每个线程都会有各自的线程栈,执行运算的时候,是从公共堆栈读取数据到线程堆栈中,线程
c语言之volatile和register关键字
//register.cpp #include #include #include int main1() { for(register int i=0;i<10;i++) { //由于register变量使用的是硬件CPU中的寄存器,寄存器变量无地址,所以不能使用取地址运算符"&"求寄存器变量的地址。 printf("%d\n",&i);
面试点:解读关键字volatile(C语言面试题分析之一)
面试点:解读关键字volatile C语言面试题分析之一 一.volatile是什么? volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 二.编译器优化是什么意思? int i = 5; int a = i; …… int b = i; 编译器发现两次从i读数据的代码之间,并没有对i进行过操作,它会自动把上次读
正确使用Volatile关键字
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。 锁提供了两种主
C/C++(&Java) Volatile关键词深度剖析
背景 前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议):   此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关键词,来佐证我的微博观点。而这,正是我写这篇博文的初衷:本文,将详细分析C/C++ Volatile关键词的功能 (有多种功能)、Volati
关闭
关闭