Skip to main content

Posts

Showing posts with the label Double check locking

Anomalies with Double check locking

Already we have a nice article about about problems with double check locking. we will see two nice quick workarounds  and its pros and cons . Double-checked locking: Clever, but broken and Double-Checked Locking is Broken . before getting into solution, classic singleton uses the following signature for get instance:      public static  Resource getResource() {     if (resource == null)       resource = new Resource();     return resource;   } so the above code will only create the new resource object if  no instance of resource is found. This mechanism is  called lazy loading more preciously need based loading we only load resources if and only if it is required. Benefit associated with this approach is performance  improvement, if resource creation is a heavy process and we do not want it to be carried when class is loading t  then this classic approach does make sense...