Merge pull request #8 from annemsujan/master
Thread safe lazy loaded singleton implementation added.
This commit is contained in:
commit
70fffc5ca3
@ -15,5 +15,12 @@ public class App {
|
|||||||
System.out.println("ivoryTower1=" + ivoryTower1);
|
System.out.println("ivoryTower1=" + ivoryTower1);
|
||||||
System.out.println("ivoryTower2=" + ivoryTower2);
|
System.out.println("ivoryTower2=" + ivoryTower2);
|
||||||
|
|
||||||
|
ThreadSafeLazyLoadedIvoryTower threadSafeIvoryTower1 = ThreadSafeLazyLoadedIvoryTower
|
||||||
|
.getInstance();
|
||||||
|
ThreadSafeLazyLoadedIvoryTower threadSafeIvoryTower2 = ThreadSafeLazyLoadedIvoryTower
|
||||||
|
.getInstance();
|
||||||
|
System.out.println("threadSafeIvoryTower1=" + threadSafeIvoryTower1);
|
||||||
|
System.out.println("threadSafeIvoryTower2=" + threadSafeIvoryTower2);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Thread-safe Singleton class.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ThreadSafeLazyLoadedIvoryTower {
|
||||||
|
|
||||||
|
private static ThreadSafeLazyLoadedIvoryTower instance = null;
|
||||||
|
|
||||||
|
public synchronized static ThreadSafeLazyLoadedIvoryTower getInstance() {
|
||||||
|
/*
|
||||||
|
* The instance gets created only when it is called for first time.
|
||||||
|
* Lazy-loading
|
||||||
|
*/
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new ThreadSafeLazyLoadedIvoryTower();
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user