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
ConstructorDescriptionCreates a new instance ofReadWriteSynchronizer
and initializes it with a lock object of typeReentrantReadWriteLock
.Creates a new instance ofReadWriteSynchronizer
and initializes it with the given lock object. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Notifies thisSynchronizer
that the current thread is going to start a read operation on the managed configuration.void
Notifies thisSynchronizer
that the current thread is going to start a write operation on the managed configuration.void
endRead()
Notifies thisSynchronizer
that the current thread has finished its read operation.void
endWrite()
Notifies thisSynchronizer
that the current thread has finished its write operation.
-
Constructor Details
-
ReadWriteSynchronizer
public ReadWriteSynchronizer()Creates a new instance ofReadWriteSynchronizer
and initializes it with a lock object of typeReentrantReadWriteLock
. -
ReadWriteSynchronizer
Creates a new instance ofReadWriteSynchronizer
and 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:Synchronizer
Notifies thisSynchronizer
that 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:
beginRead
in interfaceSynchronizer
-
beginWrite
Description copied from interface:Synchronizer
Notifies thisSynchronizer
that 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:
beginWrite
in interfaceSynchronizer
-
endRead
Description copied from interface:Synchronizer
Notifies thisSynchronizer
that the current thread has finished its read operation. This may cause other waiting threads to be granted access to the managed configuration.- Specified by:
endRead
in interfaceSynchronizer
-
endWrite
Description copied from interface:Synchronizer
Notifies thisSynchronizer
that the current thread has finished its write operation. This may cause other waiting threads to be granted access to the managed configuration.- Specified by:
endWrite
in interfaceSynchronizer
-