java--多线程--Volatile
来源:互联网 发布:php写学生成绩系统 编辑:程序博客网 时间:2024/06/16 10:03
概述
Java还提供了一种弱形式的同步,即使用了volatile关键字。该关键字确保了对一个变量的更新对其他线程可见。当一个变量被声明为volatile时候,线程写入时候不会把值缓存在寄存器或者或者在其他地方,当线程读取的时候会从主内存重新获取最新值,而不是使用当前线程的拷贝内存变量值。Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。只能在有限的一些情形下使用 volatile 变量替代锁可见
volatile boolean asleep; ... while(!asleep){ ... }
volatile变量通常用做某个操作完成,发生中断或者作为状态的标志。volatile的语义不足以确保递增操作的原子性。也就是说,加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性。
参考
http://www.jianshu.com/p/15f9f54f8e3f
https://www.ibm.com/developerworks/cn/java/j-jtp06197.html
https://www.cnblogs.com/peterxiao/p/6715684.html
阅读全文
0 0
- java多线程中的volatile
- Java多线程 -- volatile关键字
- java多线程--volatile关键字
- Java 多线程:volatile关键字
- Java多线程中的volatile
- java 多线程 volatile 关键字
- Java多线程volatile详解
- 【java多线程 关键字】volatile
- java多线程之volatile
- java--多线程--Volatile
- java的volatile与多线程
- java的volatile与多线程
- java的volatile与多线程
- Java多线程的volatile关键字
- JAVA 多线程之~~volatile关键字
- java多线程---volatile 变量使用指南
- java多线程之volatile关键字
- Java关键字volatile多线程变成
- Python 迭代(iteration)
- Qt:基于TCP的多线程文件传输工具
- excel导出数据很多,拆分成多个,以Excel的方式导出
- hibernate_day02
- KSM:Kernel Same-page Merging
- java--多线程--Volatile
- STM32项目(六)—— 中文电子捡货标签
- [以太坊源代码分析] VI. 基于p2p的底层通信(上篇)
- 前后台交互中文乱码解决方式之一
- itunes 共享app文件
- 开发常用API
- PowerDesigner新手简单使用
- 21世纪如何正确思考及开创个人事业(转发)
- 怎么理解anchor?