// Works with acquire/release semantics for volatile
// Broken under Java 1.4 and earlier semantics for volatile
class Foo {
private volatile Helper helper = null;
public Helper getHelper() {
if (helper == null) {
synchronized(this) {
if (helper == null)
helper = new Helper();
}
}
return helper;
}
// other functions and members...
}
http://en.wikipedia.org/wiki/Double-checked_locking
Jan 15, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment