public final class DefaultLockRegistry extends Object implements LockRegistry
LockRegistry which uses Masked Hashcode algorithm to obtain locks.
When an instance of this class is created and array of Lock objects is created. The length of
the array is based on the 'mask' parameter passed in the constructor. The default mask is 0xFF which will create
and array consisting of 256 ReentrantLock instances.
When the obtain(Object) method is called with the lockKey (e.g., Object) the index of the Lock
is determined by masking the object's hashCode (e.g., object.hashCode & mask) and the Lock is returned.| 构造器和说明 |
|---|
DefaultLockRegistry()
Constructs a DefaultLockRegistry with the default
mask 0xFF with 256 locks.
|
DefaultLockRegistry(int mask)
Constructs a DefaultLockRegistry with the supplied
mask - the mask must have a value Math.pow(2, n) - 1 where n
is 1 to 31, creating a hash of Math.pow(2, n) locks.
|
public DefaultLockRegistry()
public DefaultLockRegistry(int mask)
Examples:
mask - The bit mask.public Lock obtain(Object lockKey)
obtain 在接口中 LockRegistrylockKey - the object used to derive the lock index.Copyright © 2018 Pivotal Software, Inc.. All rights reserved.