HugeGraph-407: add KeyLock class

Change-Id: I655bdf4da20e0c6b6d7796958485ab066f0020f1
This commit is contained in:
Zhangmei Li 2017-07-10 13:32:26 +08:00 committed by liningrui
parent 5603b9c6a3
commit 7bdf878dd4
1 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,26 @@
package com.baidu.hugegraph.concurrent;
import java.util.concurrent.locks.Lock;
import com.google.common.util.concurrent.Striped;
public class KeyLock {
private Striped<Lock> locks;
public KeyLock() {
this(Runtime.getRuntime().availableProcessors() * 4);
}
public KeyLock(int size) {
this.locks = Striped.lock(size);
}
public final void lock(Object key) {
this.locks.get(key).lock();
}
public final void unlock(Object key) {
this.locks.get(key).unlock();
}
}