首页 > 代码库 > volatile的一点理解
volatile的一点理解
对于volatile的理解,我想通过代码来表达。
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #931a68 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; min-height: 25.0px } p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #4e9072 } span.s1 { color: #931a68 } span.s2 { color: #000000 } span.s3 { color: #0326cc } span.Apple-tab-span { white-space: pre }</style>
public class VolatileExample {
private volatile long data;
public void setData(long newData){
data = newData;//对于volatile变量的写
}
public long getData(){
return data;//对于volatile变量的读
}
public void increseData(){
data++;//对于volatile变量的复合操作
}
}
等价于下面这个类:
<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #931a68 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; min-height: 25.0px } p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Monaco; color: #4e9072 } span.s1 { color: #931a68 } span.s2 { color: #000000 } span.s3 { color: #0326cc } span.Apple-tab-span { white-space: pre }</style>public class VolatileExampleNew {
private volatile long data;
public synchronized void setData(long newData){
data = newData;//对于volatile变量的写
}
public synchronized long getData(){
return data;//对于volatile变量的读
}
public void increseData(){
long temp = getData();
temp+=1l;
setData(temp);
}
}
volatile的一点理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。