volatile的一点理解

对于volatile的理解,我想通过代码来表达。

 

 

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变量的复合操作

}

}

 

等价于下面这个类:

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);

}

}

 

posted @ 2017-03-13 11:12  蒋旺93  阅读(160)  评论(0编辑  收藏  举报