您的位置:首页 > 其它

读写锁接口实例-通过ReadWriteLock实现一个简单的缓存

2017-08-29 13:17 976 查看
读写锁的特征是写锁必须以独占的方式获取,读锁可以共享

利用读写锁实现的缓存实例,代码如下

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

public class Cache {
private static final Map<String, Object>    map = new HashMap<String, Object>();
private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private static final Lock                   r   = rwl.readLock();
private static final Lock                   w   = rwl.writeLock();

public static final Object get(String key) {
r.lock();
try {
return map.get(key);
} finally {
r.unlock();
}
}

public static final Object put(String key, Object value) {
w.lock();
try {
return map.put(key, value);
} finally {
w.unlock();
}
}

public static final void clear() {
w.lock();
try {
map.clear();
} finally {
w.unlock();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息