volatile

原创 2015年11月20日 20:29:10

为了保证速度,处理器和内存不直接通信,而是通过将系统内存的数据读到缓存l1,l2等,然后再进行读写,如果变量是volatile的,那么在生成汇编代码时候会多产生一句lock开头的指令,x86处理器对lock开头的汇编是这样处理的,将缓存内直接写入内存,其它处理器的缓存了本变量都会失效,下次重新在内存读取。注意缓存读取是64个字节一起读取,所以有追加字节一说

代码(编译器)-字节码(jvm)-汇编指令,


volatile是轻量级的synchronized,不会引起上下文切换



相关文章推荐

成哥的教程之volatile

  • 2016年07月31日 18:28
  • 15.32MB
  • 下载

volatile变量详解

  • 2013年12月31日 17:45
  • 202KB
  • 下载

Java 并发:volatile 关键字解析

在Java并发编程中,要想使并发程序能够正确地执行必须要保证三条原则:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能导致线程安全性问题。volatile关键字被用来保证可见性,即保证共享变...

C中Volatile用法.doc

  • 2013年05月30日 10:38
  • 24KB
  • 下载

volatile_unsigned_int

  • 2013年03月22日 23:27
  • 197KB
  • 下载

关键字volatile与关键字synchronized

关键字volatile的作用是强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。使用关键字volatile增加了实例变量在多个线程之间的可见性。但是volatile关键字最致命的缺点...

volatile用法

  • 2009年03月19日 01:05
  • 37KB
  • 下载

Java并发编程:volatile关键字解析(牛人还是很多的,尤其是看了诸多文档的)

原文出处:http://www.cnblogs.com/dolphin0520/Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Jav...

volatile变量

  • 2009年06月05日 15:17
  • 85KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:volatile
举报原因:
原因补充:

(最多只允许输入30个字)