java Volatile关键字解析
2015-06-30 14:19
507 查看
在《深入理解JVM》以及《并发编程实战》中都有看到volatile关键字,但是总是一知半解,在网上看到一篇比较好的文章,讲的大多数都能理解,希望给大家借鉴下。对于一个经典例子:
此对象非线程安全的,此文中也做了介绍,但是可能不是那么好理解,在此我提出几个概念,或许会有助于大家的理解:
这个问题就在于,虽然更改后主存使得所有的工作缓存中的值都无效,但是,inc++包括以下几个操作:读取inc值,加一,写入。如果已经读取了inc值了,线程不会再执行读操作,即不会发现缓存已经失效了,所以。。。。。
注意主内存,处理器高速缓存,操作数栈。
参考文章:http://www.cnblogs.com/dolphin0520/p/3920373.html
此对象非线程安全的,此文中也做了介绍,但是可能不是那么好理解,在此我提出几个概念,或许会有助于大家的理解:
这个问题就在于,虽然更改后主存使得所有的工作缓存中的值都无效,但是,inc++包括以下几个操作:读取inc值,加一,写入。如果已经读取了inc值了,线程不会再执行读操作,即不会发现缓存已经失效了,所以。。。。。
注意主内存,处理器高速缓存,操作数栈。
参考文章:http://www.cnblogs.com/dolphin0520/p/3920373.html
相关文章推荐
- 异常 java.lang.UnsatisfiedLinkError,so库没有加载
- java动态爬虫jsoup以及正则表达式的运用
- Java 对象复制
- Java EE应用的分层模型
- struts2 文件上传下载(单文件上传与多文件上传的比较)
- java☞自增自减运算符(++)(--)
- Java 图片添加水印
- java读取properties配置文件
- 【Java Swing探索之路系列】之四:Java Swing用户界面组件(一)
- Java 接口和抽象类区别
- spring 4 整合hibernate 4的新变化
- Java程序执行时间的简单方法
- POJ 3982 序列 [解题报告] Java
- java 知识点
- [java]多态
- java☞基本数据类型
- Java用freemarker导出word
- eclipse插件genymotion运行提示Initialize Engine: failed和Virtualbox运行提示创建com对象失败
- Eclipse4.4 安装java反编译插件Eclipse Class Decompiler
- JAVA forname classnotfoundexception 错误