Java多线程当中的violate
2015-07-11 14:39
232 查看
violate在多线程当中的用来修饰某个变量,这个变量只有一份,也就是不存在多线程cache它们本地的情况出现。从而保证对他的读和写是唯一的,不会存在不一致的情况。
一、适用的情况
对于某个变量只有读和写两种单一操作。
violate int count;
count=1;
count=0;
if(count==0){...}
上面都是单一操作,而
count=cout+1;
count++;
不是单一读写操作,因为在上面两种操作当中都涉及了先读然后在写的操作过程,这样volate无法保证原子性。
二、不是用的情况
synchronized对于代码块也有同步作用,但是violate做不到
参考
[1] /article/4058400.html
一、适用的情况
对于某个变量只有读和写两种单一操作。
violate int count;
count=1;
count=0;
if(count==0){...}
上面都是单一操作,而
count=cout+1;
count++;
不是单一读写操作,因为在上面两种操作当中都涉及了先读然后在写的操作过程,这样volate无法保证原子性。
二、不是用的情况
synchronized对于代码块也有同步作用,但是violate做不到
参考
[1] /article/4058400.html
相关文章推荐
- 在Eclipse中新建Maven项目
- SpringMVC源码剖析(四)- DispatcherServlet请求转发的实现
- java中static关键字
- java中的集合与队列
- SpringMVC源码剖析(三)- DispatcherServlet的初始化流程
- SpringMVC源码剖析(二)- DispatcherServlet的前世今生
- SpringMVC源码剖析(一)- 从抽象和接口说起
- 分享非常有用的Java程序(关键代码)(七)---抓屏程序
- Day15 Java基础 IO流
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
- JDK设置环境变量(classpath)时:dt.jar ,tool.jar,rt.jar的作用
- 深入理解JDK、JRE(两套)、JVM、以及不同目录下的java.exe
- 分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map
- 分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小
- 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件
- 分享非常有用的Java程序 (关键代码) (二)---列出文件和目录
- 分享非常有用的Java程序 (关键代码) (一)
- Java 读写XML
- SpringMVC 单元测试
- JAVA中的自动装箱/拆箱