码迷,mamicode.com
首页 > 编程语言 > 详细

Java多线程当中的violate

时间:2015-07-11 14:51:36      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

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

Java多线程当中的violate

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!