ConcurrentInitializer
Date: 2017-02-08

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

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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