public class ReadWriteSynchronizer extends Object implements 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.
Constructor and Description |
---|
ReadWriteSynchronizer()
Creates a new instance of
ReadWriteSynchronizer and initializes it with a lock object of type
ReentrantReadWriteLock . |
ReadWriteSynchronizer(ReadWriteLock l)
Creates a new instance of
ReadWriteSynchronizer and initializes it with the given lock object. |
Modifier and Type | Method and Description |
---|---|
void |
beginRead()
Notifies this
Synchronizer that the current thread is going to start a read operation on the managed
configuration. |
void |
beginWrite()
Notifies this
Synchronizer that the current thread is going to start a write operation on the managed
configuration. |
void |
endRead()
Notifies this
Synchronizer that the current thread has finished its read operation. |
void |
endWrite()
Notifies this
Synchronizer that the current thread has finished its write operation. |
public ReadWriteSynchronizer(ReadWriteLock l)
ReadWriteSynchronizer
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.l
- the lock object to be used (can be null)public ReadWriteSynchronizer()
ReadWriteSynchronizer
and initializes it with a lock object of type
ReentrantReadWriteLock
.public void beginRead()
Synchronizer
Synchronizer
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.beginRead
in interface Synchronizer
public void endRead()
Synchronizer
Synchronizer
that the current thread has finished its read operation. This may cause other
waiting threads to be granted access to the managed configuration.endRead
in interface Synchronizer
public void beginWrite()
Synchronizer
Synchronizer
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,beginWrite
in interface Synchronizer
public void endWrite()
Synchronizer
Synchronizer
that the current thread has finished its write operation. This may cause other
waiting threads to be granted access to the managed configuration.endWrite
in interface Synchronizer
Copyright © 2001–2022 The Apache Software Foundation. All rights reserved.