展开
Eugene's answer
. 这是如何应用
ReentrantReadWriteLock
为了实现我需要的:
class Cache<Item> {
final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private Map<String, Item> internalStorage;
public Collection<Item> find(String query) {
rwl.readLock().lock();
try {
// find Items from internalStorage
// ...
return result;
} finally {
rwl.readLock().unlock();
}
}
public void add(Collection<Item> items) {
rwl.writeLock().lock();
try {
// Add items to internalStorage
// ...
} finally {
rwl.writeLock().unlock();
}
}
}