Package org.apache.hadoop.hbase.util
Class KeyLocker<K>
java.lang.Object
org.apache.hadoop.hbase.util.KeyLocker<K>
A utility class to manage a set of locks. Each lock is identified by a String which serves as a
key. Typical usage is:
class Example { private final static KeyLocker<String> locker = new Locker<String>(); public void foo(String s) { Lock lock = locker.acquireLock(s); try { // whatever } finally { lock.unlock(); } } }
-
Field Summary
Modifier and TypeFieldDescriptionprivate final WeakObjectPool<K,
ReentrantLock> private static final int
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionacquireLock
(K key) Return a lock for the given key.acquireLocks
(Set<? extends K> keys) Acquire locks for a set of keys.
-
Field Details
-
NB_CONCURRENT_LOCKS
- See Also:
-
lockPool
-
-
Constructor Details
-
KeyLocker
public KeyLocker()
-
-
Method Details
-
acquireLock
Return a lock for the given key. The lock is already locked. -
acquireLocks
Acquire locks for a set of keys. The keys will be sorted internally to avoid possible deadlock.- Throws:
ClassCastException
- if the givenkeys
contains elements that are not mutually comparable
-