ehcache

net.sf.ehcache.constructs.concurrent
Class ConcurrencyUtil

java.lang.Object
  extended by net.sf.ehcache.constructs.concurrent.ConcurrencyUtil

public final class ConcurrencyUtil
extends java.lang.Object

Various bits of black magic garnered from experts on the concurrency-interest@cs.oswego.edu mailing list.

Version:
$Id: ConcurrencyUtil.java 519 2007-07-27 07:11:45Z gregluck $
Author:
Greg Luck

Method Summary
static int hash(java.lang.Object object)
          Returns a hash code for non-null Object x.
static int selectLock(java.lang.Object key, int numberOfLocks)
          Selects a lock for a key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

hash

public static int hash(java.lang.Object object)
Returns a hash code for non-null Object x.

This function ensures that hashCodes that differ only by constant multiples at each bit position have a bounded number of collisions. (Doug Lea)

Parameters:
object - the object serving as a key
Returns:
the hash code

selectLock

public static int selectLock(java.lang.Object key,
                             int numberOfLocks)
                      throws CacheException
Selects a lock for a key. The same lock is always used for a given key.

Parameters:
key -
Returns:
the selected lock index
Throws:
CacheException

ehcache