Merge pull request #8 from annemsujan/master
Thread safe lazy loaded singleton implementation added.
This commit is contained in:
		| @@ -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; | ||||||
|  | 	} | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user