Java多线程当中的violate

时间:2015-07-11 14:48:39   收藏:0   阅读:613

violate在多线程当中的用来修饰某个变量,这个变量只有一份,也就是不存在多线程cache它们本地的情况出现。从而保证对他的读和写是唯一的,不会存在不一致的情况。

一、适用的情况

对于某个变量只有读和写两种单一操作。

violate int count;

count=1;

count=0;

if(count==0){...}

上面都是单一操作,而

count=cout+1;

count++;

不是单一读写操作,因为在上面两种操作当中都涉及了先读然后在写的操作过程,这样volate无法保证原子性。

二、不是用的情况

synchronized对于代码块也有同步作用,但是violate做不到

 

参考

[1] http://sakyone.iteye.com/blog/668091

原文:http://www.cnblogs.com/deepblueme/p/4638625.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!