Class ReadWriteSynchronizer
java.lang.Object
org.apache.commons.configuration2.sync.ReadWriteSynchronizer
- All Implemented Interfaces:
Synchronizer
A special implementation of Synchronizer based on the JDK's ReentrantReadWriteLock class.
This class manages a ReadWriteLock object internally. The methods of the Synchronizer interface are
delegated to this lock. So this class behaves in the same way as documented for ReentrantReadWriteLock.
Using this Synchronizer implementation is appropriate to make configuration objects thread-safe. This means
that multiple threads can read configuration data in parallel; if one thread wants to update the configuration, this
happens with an exclusive lock.
- Since:
- 2.0
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance ofReadWriteSynchronizerand initializes it with a lock object of typeReentrantReadWriteLock.Creates a new instance ofReadWriteSynchronizerand initializes it with the given lock object. -
Method Summary
Modifier and TypeMethodDescriptionvoidNotifies thisSynchronizerthat the current thread is going to start a read operation on the managed configuration.voidNotifies thisSynchronizerthat the current thread is going to start a write operation on the managed configuration.voidendRead()Notifies thisSynchronizerthat the current thread has finished its read operation.voidendWrite()Notifies thisSynchronizerthat the current thread has finished its write operation.
-
Constructor Details
-
ReadWriteSynchronizer
public ReadWriteSynchronizer()Creates a new instance ofReadWriteSynchronizerand initializes it with a lock object of typeReentrantReadWriteLock. -
ReadWriteSynchronizer
Creates a new instance ofReadWriteSynchronizerand initializes it with the given lock object. This constructor can be used to pass a lock object which has been configured externally. If the lock object is null, a default lock object is created.- Parameters:
l- the lock object to be used (can be null)
-
-
Method Details
-
beginRead
Description copied from interface:SynchronizerNotifies thisSynchronizerthat the current thread is going to start a read operation on the managed configuration. This call can block if a concrete implementation decides that the thread has to wait until a specific condition is fulfilled.- Specified by:
beginReadin interfaceSynchronizer
-
beginWrite
Description copied from interface:SynchronizerNotifies thisSynchronizerthat the current thread is going to start a write operation on the managed configuration. This call may block. For instance, a concrete implementation may suspend the thread until all read operations currently active are finished,- Specified by:
beginWritein interfaceSynchronizer
-
endRead
Description copied from interface:SynchronizerNotifies thisSynchronizerthat the current thread has finished its read operation. This may cause other waiting threads to be granted access to the managed configuration.- Specified by:
endReadin interfaceSynchronizer
-
endWrite
Description copied from interface:SynchronizerNotifies thisSynchronizerthat the current thread has finished its write operation. This may cause other waiting threads to be granted access to the managed configuration.- Specified by:
endWritein interfaceSynchronizer
-