23 lines
655 B
Java
23 lines
655 B
Java
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;
|
|
}
|
|
} |