`

MSDN:volatile 声明符

    博客分类:
  • Code
 
阅读更多

volatile 声明符

volatile关键字是一个类型限定词,用于声明一个对象能够在程序中被非程序语句所修改,比如操作系统,硬件,或者并发运行的其他线程

下面的例子声明了一个volatile整形nVint,它的值可以被外部进程所修改:

int volatile nVint;

在优化过程中,不使用被声明为volatile的对象,因为它们的值随时都可能改变。系统总是在volatile对象的值被请求的时候读取当前的值,即使上一条指令请求的是同一个对象的值。同样,对对象进行赋值操作会立刻写入它的值。

volatile限定词的用法之一就是给异步进程提供内存的访问权限,比如中断操作。

msdn, volatile
分享到:
评论

相关推荐

    Java并发编程:volatile关键字解析

    ### Java并发编程:volatile关键字解析 #### 一、内存模型的相关概念 在深入了解`volatile`关键字之前,我们首先需要理解计算机内存模型的一些基本概念。在现代计算机系统中,CPU为了提高执行效率,会将频繁访问的...

    Java线程:volatile关键字

    Java 线程 volatile 关键字详解 Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。volatile 变量的同步性较差,但它有时更简单并且开销更低。volatile 变量可以被看作是一种 “程度较轻的 ...

    Java基础:volatile详解.pdf

    Java基础:volatile详解 Java基础:volatile详解问:谈谈你对volatile的理解? volatile是Java虚拟机提供的轻量级的同步机制,它有三个特性:保证可见性、不保证原子性、禁止指令重排。 1、volatile保证可见性 ...

    volatile的用法讲解

    1. volatile修饰符只能用于变量的声明中,不能用于函数参数或返回值中。 2. volatile修饰符不能与const修饰符同时使用,因为volatile修饰符意味着变量的值可能会改变,而const修饰符意味着变量的值不能改变。 3. ...

    extern_volatile等修饰符的用法

    volatile修饰符用于声明一个对象可以被外部进程(操作系统、硬件或并发进程等)改变。 1. 声明volatile变量 volatile修饰的变量可以被不同的线程访问和修改,常用于像中断处理程序之类的异步进程进行内存单元访问...

    关于C语言中volatile关键字

    当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。精确地说就是,遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以...

    深入讲解C语言编程中volatile修饰符的作用

    在C语言编程中,`volatile`是一个非常关键的修饰符,它主要用来处理那些可能会被非预期因素(如中断服务程序、多线程环境或其他进程)改变的变量。`volatile`关键字的存在是为了通知编译器,它后面的变量的值可能会...

    Java 并发编程:volatile的使用及其原理解析

    Java并发编程中的volatile关键字是一个非常重要的工具,它用于解决多线程环境下的可见性和有序性问题,但不保证原子性。在《Java并发编程:核心理论》中提到了并发编程中遇到的三大挑战:可见性、有序性以及原子性。...

    Java修饰符demo

    4. **volatile**:volatile修饰符确保多线程环境下的可见性和有序性。它用于标记共享变量,确保当一个线程修改了这个变量时,其他线程能够立即看到变化。 5. **synchronized**:同步修饰符,用于方法或代码块,确保...

    Java实习生面试复习(八):volatile的学习

    Java实习生在面试中可能会遇到关于`volatile`关键字的考察,因为它是Java并发编程中的关键概念。`volatile`关键字主要用于处理多线程环境中的共享变量,确保变量的可见性和一定的有序性,但不保证原子性。 Java内存...

    C89文法描述PDF

    - **解释**:直接声明符可以是一个标识符、带括号的声明符、数组声明符或函数原型。 #### 三、总结 C89文法描述了C语言的基础语法结构,涵盖了翻译单元、外部声明、函数定义等多个方面。通过对这些文法规则的深入...

    Java并发:volatile内存可见性和指令重排

    volatile两大作用  1、保证内存可见性  2、防止指令重排  此外需注意volatile并不保证操作的原子性。  (一)内存可见性  1 概念  JVM内存模型:主内存和线程独立的工作内存  Java内存模型规定,对于...

    Java并发编程:volatile关键字详细解析

    Java并发编程中的volatile关键字是一个非常重要的工具,用于处理多线程环境下的共享变量同步问题。在Java 5之前,volatile的使用常常导致不可预测的行为,但在Java 5之后,随着Java内存模型(JMM,Java Memory Model...

    volatile的用法

    Volatile是C语言中的一个类型修饰符,用于告诉编译器该变量可能会在程序的控制之外被改变,从而禁止编译器对涉及该变量的代码做优化处理。这种用法在多线程、中断服务程序和硬件访问等场合特别重要。接下来详细说明...

    volatile的使用1

    【volatile关键字】在Java编程语言中扮演着至关重要的角色,主要负责解决并发环境下的数据同步问题。volatile确保了变量在多线程环境下的可见性和有序性,但它并不保证原子性。 1. **可见性**:当一个线程修改了...

    Volatile详解,深入学习Volatile

    例如,一个硬件寄存器或中断服务程序可能改变的变量就应声明为volatile。 2. Volatile的作用: - 防止编译器优化:编译器通常会优化掉被认为不变的变量的读取,但volatile变量告诉编译器不要做这样的优化,每次...

    const和volatile分析

    1. `volatile`的基本概念:`volatile`用于声明易变变量,表明该变量的值可能在编译器无法预见的情况下发生改变,例如在多线程环境、硬件中断、实时系统等。 2. 多线程编程:在多线程环境下,当一个变量可能被其他...

    Java 80 道面试题及答案.docx

    Here are some key points related to volatile: 1. Volatile 数组: Java 中可以创建 volatile 数组,但是volatile 只是对数组引用有效,而不是整个数组。因此,如果改变数组的元素,volatile 不会提供保护。 2. ...

    java修饰符使用很给力

    - **static**:静态修饰符,用于声明类级别的成员,这意味着它们不属于类的实例,而是属于类本身。静态成员可以通过类名直接访问,而不需创建类的实例。 - **final**:最终修饰符,用于声明不可变的变量或不能被...

    java里的volatile关键字详解

    "Java中的Volatile关键字详解" Java中的Volatile关键字详解是Java中的一种关键字,用于保证线程之间的可见性、原子性和有序性。下面是对Java中的Volatile关键字详解的知识点总结: 一、基本概念 1. 可见性:可见...

Global site tag (gtag.js) - Google Analytics