Interface ConcurrentInitializer<T>
- Type Parameters:
T
- the type of the object managed by this initializer class.
- All Superinterfaces:
FailableSupplier<T,
ConcurrentException>
- All Known Implementing Classes:
AbstractConcurrentInitializer
,AtomicInitializer
,AtomicSafeInitializer
,BackgroundInitializer
,CallableBackgroundInitializer
,ConstantInitializer
,LazyInitializer
,MultiBackgroundInitializer
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 FailableSupplier.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.
An implementation of FailableSupplier.get()
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.
An implementation throws ConcurrentException
if an error occurred during initialization of the object.
- Since:
- 3.0
-
Field Summary
Fields inherited from interface org.apache.commons.lang3.function.FailableSupplier
NUL
-
Method Summary
Methods inherited from interface org.apache.commons.lang3.function.FailableSupplier
get