Klasse RWOLockManager<OBJECT,CONTEXT>
java.lang.Object
org.eclipse.net4j.util.event.Notifier
org.eclipse.net4j.util.lifecycle.Lifecycle
org.eclipse.net4j.util.concurrent.RWOLockManager<OBJECT,CONTEXT>
- Alle implementierten Schnittstellen:
IRWLockManager<OBJECT,
,CONTEXT> IRWOLockManager<OBJECT,
,CONTEXT> INotifier
,INotifier.INotifier2
,IDeactivateable
,ILifecycle
,ILifecycle.DeferrableActivation
public class RWOLockManager<OBJECT,CONTEXT>
extends Lifecycle
implements IRWOLockManager<OBJECT,CONTEXT>
Keeps track of locks on objects. Locks are owned by contexts. A particular combination of locks and their owners, for
a given object, is represented by instances of the
RWOLockManager.LockState
class. This class is also responsible for
deciding whether or not a new lock can be granted, based on the locks already present.- Seit:
- 3.2
- Autor:
- Caspar De Groot, Eike Stepper
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic class
Represents a combination of locks for one OBJECT.Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.eclipse.net4j.util.lifecycle.ILifecycle
ILifecycle.DeferrableActivation
Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.eclipse.net4j.util.event.INotifier
INotifier.INotifier2
Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.eclipse.net4j.util.concurrent.IRWLockManager
IRWLockManager.LockType
Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.eclipse.net4j.util.concurrent.IRWOLockManager
IRWOLockManager.LockDeltaHandler<OBJECT,
CONTEXT> -
Feldübersicht
FelderModifizierer und TypFeldBeschreibungprotected final Access
protected final ReentrantReadWriteAccess
protected final Access
Von Schnittstelle geerbte Felder org.eclipse.net4j.util.concurrent.IRWLockManager
NO_WAIT, WAIT
Von Schnittstelle geerbte Felder org.eclipse.net4j.util.concurrent.IRWOLockManager
ALL_LOCK_TYPES, ALL_LOCKS, ALL_OBJECTS, NO_TIMEOUT
-
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungprotected void
changeContext
(CONTEXT oldContext, CONTEXT newContext) protected Map
<OBJECT, RWOLockManager.LockState<OBJECT, CONTEXT>> protected long
All access to the returned map must be properly synchronized on thisRWOLockManager
.getLockState
(OBJECT key) Veraltet.void
getLockStates
(Collection<OBJECT> keys, BiConsumer<OBJECT, RWOLockManager.LockState<OBJECT, CONTEXT>> consumer) void
getLockStates
(Consumer<RWOLockManager.LockState<OBJECT, CONTEXT>> consumer) long
protected final Map
<OBJECT, RWOLockManager.LockState<OBJECT, CONTEXT>> All access to the returned map must be properly synchronized on thisRWOLockManager
.boolean
hasLock
(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock) boolean
hasLockByOthers
(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock) long
lock
(CONTEXT context, Collection<? extends OBJECT> objects, IRWLockManager.LockType lockType, int count, long timeout, IRWOLockManager.LockDeltaHandler<OBJECT, CONTEXT> deltaHandler, Consumer<RWOLockManager.LockState<OBJECT, CONTEXT>> stateHandler) Adds locks of the given lockType, owned by the given context to the given objects.void
lock
(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) Veraltet.void
lock
(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout) Veraltet.lock2
(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) Veraltet.void
setLockState
(OBJECT key, RWOLockManager.LockState<OBJECT, CONTEXT> lockState) Veraltet.static void
setUnlockAll
(boolean on) Veraltet.void
Veraltet.long
unlock
(CONTEXT context, Collection<? extends OBJECT> objects, IRWLockManager.LockType lockType, int count, IRWOLockManager.LockDeltaHandler<OBJECT, CONTEXT> deltaHandler, Consumer<RWOLockManager.LockState<OBJECT, CONTEXT>> stateHandler) Removes locks of the given lockType, owned by the given context from the given objects.void
unlock
(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.Veraltet.unlock2
(CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.unlock2
(IRWLockManager.LockType lockType, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.Von Klasse geerbte Methoden org.eclipse.net4j.util.lifecycle.Lifecycle
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
Von Klasse geerbte Methoden org.eclipse.net4j.util.event.Notifier
addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener
Von Klasse geerbte Methoden java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Von Schnittstelle geerbte Methoden org.eclipse.net4j.util.event.INotifier
addListener, getListeners, hasListeners, removeListener
-
Felddetails
-
rwAccess
- Seit:
- 3.16
-
read
- Seit:
- 3.16
-
write
- Seit:
- 3.16
-
-
Konstruktordetails
-
RWOLockManager
public RWOLockManager()
-
-
Methodendetails
-
getModCount
public long getModCount()- Angegeben von:
getModCount
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Category
- Read Access
-
lock
public long lock(CONTEXT context, Collection<? extends OBJECT> objects, IRWLockManager.LockType lockType, int count, long timeout, IRWOLockManager.LockDeltaHandler<OBJECT, CONTEXT> deltaHandler, Consumer<RWOLockManager.LockState<OBJECT, throws InterruptedException, TimeoutRuntimeExceptionCONTEXT>> stateHandler) Beschreibung aus Schnittstelle kopiert:IRWOLockManager
Adds locks of the given lockType, owned by the given context to the given objects.- Angegeben von:
lock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Parameter:
context
- The lock context to add from theobjects
. Must not benull
.objects
- The objects to lock. Must not benull
.lockType
- The type of lock to add to theobjects
. Must not benull
.count
- The number of locks to add to each of theobjects
.timeout
- The period in milliseconds after that aTimeoutRuntimeException
is thrown if some or all of theobjects
could not be locked, orIRWOLockManager.NO_TIMEOUT
to attempt forever to acquire the requested locks.deltaHandler
- A handler that is notified with each delta in alock state
, ornull
if no such notification is needed. The handler is notified at most once per delta, but it can happen that the handler is notified before the lock operation finally fails with one of the specified exceptions. The notification handling should be fast because notifications occur while the calling thread is synchronized on this lock manager.stateHandler
- A handler that is notified with each newlock state
, ornull
if no such notification is needed.. The handler is notified at most once per lock state, but it can happen that the handler is notified before the lock operation finally fails with one of the specified exceptions. The notification handling should be fast because notifications occur while the calling thread is synchronized on this lock manager.- Gibt zurück:
- The new
modification count
. - Löst aus:
InterruptedException
- If the calling thread is interrupted.TimeoutRuntimeException
- If the timeout period has expired and some or all of theobjects
could not be locked.- Seit:
- 3.16
- Category
- Write Access
-
unlock
public long unlock(CONTEXT context, Collection<? extends OBJECT> objects, IRWLockManager.LockType lockType, int count, IRWOLockManager.LockDeltaHandler<OBJECT, CONTEXT> deltaHandler, Consumer<RWOLockManager.LockState<OBJECT, CONTEXT>> stateHandler) Beschreibung aus Schnittstelle kopiert:IRWOLockManager
Removes locks of the given lockType, owned by the given context from the given objects.- Angegeben von:
unlock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Parameter:
context
- The lock context to remove from theobjects
. Must not benull
.objects
- The objects to unlock, orIRWOLockManager.ALL_OBJECTS
to unlock all objects of thecontext
.lockType
- The type of lock to remove from theobjects
, orIRWOLockManager.ALL_LOCK_TYPES
to remove the locks of all types.count
- The number of locks to remove from each of theobjects
, orIRWOLockManager.ALL_LOCKS
to remove all locks.deltaHandler
- A handler that is notified with each delta in aRWOLockManager.LockState
, ornull
if no such notification is needed.stateHandler
- A handler that is notified with each newRWOLockManager.LockState
, ornull
if no such notification is needed.- Category
- Write Access
-
hasLock
- Angegeben von:
hasLock
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Category
- Read Access
-
hasLockByOthers
- Angegeben von:
hasLockByOthers
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Category
- Read Access
-
getLockState
- Category
- Read Access
-
getLockStates
public void getLockStates(Collection<OBJECT> keys, BiConsumer<OBJECT, RWOLockManager.LockState<OBJECT, CONTEXT>> consumer) - Seit:
- 3.16
- Category
- Read Access
-
getLockStates
- Seit:
- 3.16
- Category
- Read Access
-
changeContext
-
getObjectToLocksMap
All access to the returned map must be properly synchronized on thisRWOLockManager
. -
getContextToLocksMap
All access to the returned map must be properly synchronized on thisRWOLockManager
. -
createObjectToLocksMap
-
createContextToLocksMap
-
currentTimeMillis
protected long currentTimeMillis() -
getLockStates
Veraltet. -
setLockState
@Deprecated public void setLockState(OBJECT key, RWOLockManager.LockState<OBJECT, CONTEXT> lockState) Veraltet.- Category
- Write Access
-
lock
@Deprecated public void lock(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) throws InterruptedException Veraltet.- Angegeben von:
lock
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Angegeben von:
lock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Löst aus:
InterruptedException
-
lock2
@Deprecated public List<RWOLockManager.LockState<OBJECT,CONTEXT>> lock2(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) throws InterruptedException Veraltet.- Angegeben von:
lock2
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Löst aus:
InterruptedException
-
lock
@Deprecated public void lock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout) throws InterruptedException Veraltet.- Angegeben von:
lock
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Angegeben von:
lock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT> - Löst aus:
InterruptedException
-
unlock
@Deprecated public void unlock(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.Beschreibung aus Schnittstelle kopiert:IRWLockManager
Attempts to release for a given lock type, context and objects.- Angegeben von:
unlock
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Angegeben von:
unlock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT>
-
unlock
Veraltet.Beschreibung aus Schnittstelle kopiert:IRWLockManager
Attempts to release all locks(read and write) for a given context.- Angegeben von:
unlock
in SchnittstelleIRWLockManager<OBJECT,
CONTEXT> - Angegeben von:
unlock
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT>
-
unlock2
Veraltet.- Angegeben von:
unlock2
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT>
-
unlock2
@Deprecated public List<RWOLockManager.LockState<OBJECT,CONTEXT>> unlock2(CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.- Angegeben von:
unlock2
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT>
-
unlock2
@Deprecated public List<RWOLockManager.LockState<OBJECT,CONTEXT>> unlock2(IRWLockManager.LockType lockType, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock) Veraltet.- Angegeben von:
unlock2
in SchnittstelleIRWOLockManager<OBJECT,
CONTEXT>
-
setUnlockAll
Veraltet.
-