Almost everyone knows how the singleton pattern works. It looks something as follows:
This code would won't correctly in case of an multi-threaded environment. For it to work in a multi-threaded environment you will add some synchronization code.
However I came across this new way to assure singleton instance in Java. It is called Initialization-on-demand holder idiom. You can read about it here: http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom
It relies on the defined initialization phase of execution within the JVM.
class Singleton { private static Singleton _instance; private Singleton(){ } public Singleton getInstance() { if(_instance == null) { _instance = new Singleton(); } return _instance; } }
This code would won't correctly in case of an multi-threaded environment. For it to work in a multi-threaded environment you will add some synchronization code.
However I came across this new way to assure singleton instance in Java. It is called Initialization-on-demand holder idiom. You can read about it here: http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom
It relies on the defined initialization phase of execution within the JVM.
No comments:
Post a Comment