package com.jivesoftware.os.amza.service;
/**
*
* @author jonathan.colt
*/
public class StripingLocksProvider<K> {
private final StripingLock[] locks;
public StripingLocksProvider(int numLocks) {
locks = new StripingLock[numLocks];
for (int i = 0; i < numLocks; i++) {
locks[i] = new StripingLock();
}
}
public Object lock(K toLock, int seed) {
return locks[Math.abs((toLock.hashCode() ^ seed) % locks.length)];
}
static private class StripingLock {
}
}