org.apache.commons.lang3.concurrent
Interface ConcurrentInitializer<T>

Type Parameters:
T - the type of the object managed by this initializer class
All Known Implementing Classes:
AtomicInitializer, AtomicSafeInitializer, BackgroundInitializer, CallableBackgroundInitializer, ConstantInitializer, LazyInitializer, MultiBackgroundInitializer

public interface ConcurrentInitializer<T>

Definition of an interface for the thread-safe initialization of objects.

The idea behind this interface is to provide access to an object in a thread-safe manner. A ConcurrentInitializer can be passed to multiple threads which can all access the object produced by the initializer. Through the get() method the object can be queried.

Concrete implementations of this interface will use different strategies for the creation of the managed object, e.g. lazy initialization or initialization in a background thread. This is completely transparent to client code, so it is possible to change the initialization strategy without affecting clients.

Since:
3.0
Version:
$Id: ConcurrentInitializer.java 1088899 2011-04-05 05:31:27Z bayard $

Method Summary
 T get()
          Returns the fully initialized object produced by this ConcurrentInitializer.
 

Method Detail

get

T get()
      throws ConcurrentException
Returns the fully initialized object produced by this ConcurrentInitializer. A concrete implementation here returns the results of the initialization process. This method may block until results are available. Typically, once created the result object is always the same.

Returns:
the object created by this ConcurrentException
Throws:
ConcurrentException - if an error occurred during initialization of the object


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.