【发布时间】:2015-11-12 13:07:38
【问题描述】:
考虑这个例子:
class SomeClass{
private Foo val;
String getVal(){
if(val == null){
synchronized(this){
if(val ==null)
val = generateFoo();
}
}
}
Foo generateFoo(){
//some code
return new Foo();
}
}
在这种情况下需要 volatile 吗?
【问题讨论】:
标签: java multithreading double-checked-locking