现在位置: > > IT/计算机

Java 正确使用 Volatile 变量

Java 理论与实践: 正确使用 Volatile 变量

volatile 变量使用指南 Brian Goetz (mailto:brian.goetz@http://doc.guandang.net?subject=正确使用 Volatile 变量), 高级工程师, Sun Microsystems

简介: Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的 Java 理论与实践 中,Brian Goetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。 查看本系列更多内容 标记本文!

发布日期: 2007 年 7 月 05 日

级别: 中级

访问情况 3160 次浏览

建议: 6 (查看或添加评论)

平均分 (共 95 个评分 )

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。

锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释放锁之前对共享数据做出的更改对于随后获得该锁的另一个线程是可见的 —— 如果没有同步机制提供的这种可见性保证,线程看到的共享变量可能是修改前的值或不一致的值,这将引发许多严重问题。 Volatile 变量

Volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性。这就是说线程能够自动发现 volatile 变量的最新值。Volatile 变量可用于提供线

相关文档
Java理论与实践正确使用Volatile变量
Java理论与实践正确使用Volatile变量 volatile 变量使用指南 Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun Microsystems Brian Goetz 作为一名专业软件开发...
6初学Java多线程:慎重使用volatile关键字
学习Java 多线程中会遇到使用 volatile 关键字的情况。volatile 关键字用于声明简单类 型变量,如 int、float、boolean 等数据类型。使用它有一定的限制。 volatile ...
Java中关键字volatile的作用
Java 中关键字 volatile 的作用 广州疯狂软件学院拥有三大课程体系包括:java 课程,android 课程,ios 课程,本月基础强化营火热报名中,欢迎有志之士电话 020-28309358...
Java线程:volatile关键字
谈及到 volatile 关键字,不得不提的一篇文章是:《Java 理论与实践: 正确使用 Volatile 变量》,这篇文章对 volatile 关键字的用法做了相当精辟的阐述。 之所以要...
嵌入式中的volatile变量
多线程应用中被几个任务共享的变量 补充: volatile 应该解释为“直接存取原始内存地址”比较合适, “易变的”这种解释简直 有点误导人; “易变”是因为外在因素...
Volatile
在这期的 Java 理论 与实践 中,BrianGoetz 将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。 Java 语言中的 volatile 变量可以被看作是...
Java多线程初学者指南(6):慎重使用volatile关键字
volatile 关键字相信了解 Java 多线程的读者都很清楚它的作用。volatile 关键 字用于声明简单类型变量,如 int、float、boolean 等数据类型。如果这些简单 数据类型...
Java多线程初学者指南(6):慎重使用volatile关键字_免费...
Java多线程Java多线程隐藏>> volatile 关键字相信了解 Java 多线程的读者都很清楚它的作用。volatile 关键 字用于声明简单类型变量,如 int、float、boolean 等数据...
volatile变量使用方法
volatile变量使用方法_计算机软件及应用_IT/计算机_专业资料。详细说明volatile变量使用方法关键字volatile是什么声明? 将一个变量说明为volatile表示这个变量是“...
相关主题
返回顶部
热门文档
你可能喜欢