Java Design patterns
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package javadevjournal.design.creational.singleton;
|
||||
|
||||
public class SingletonMultiThreaded {
|
||||
|
||||
/* private instance variable */
|
||||
private static volatile SingletonMultiThreaded INSTANCE;
|
||||
|
||||
/* private constructor */
|
||||
private SingletonMultiThreaded() { }
|
||||
|
||||
public static SingletonMultiThreaded getInstance() {
|
||||
/* double-checking lock */
|
||||
if(null == INSTANCE){
|
||||
/* synchronized block */
|
||||
synchronized (SingletonMultiThreaded.class) {
|
||||
if(null == INSTANCE){
|
||||
INSTANCE = new SingletonMultiThreaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
return INSTANCE;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user