我们从以下方面更改现有代码是否有任何好处:
class MyClass {
volatile Object myVariable;
Object myMethod() {
if (myVariable == null) {
synchronized(this) {
if (myVariable == null) {
myVariable = this.getNewValue();
}
}
}
return myVariable;
}
}
到
class MyClass {
volatile Object myVariable;
Object myMethod() {
Object tmp = this.myVariable;
if (tmp == null) {
synchronized(this) {
tmp = this.myVariable;
if (tmp == null) {
this.myVariable = tmp = this.getNewValue();
}
}
}
return tmp;
}
}
我不明白在使用之前在本地复制 this.myVariable 有什么意义,而且我认为使用“this”不是一个好习惯。对于每个类变量。
慕雪6442864
相关分类