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

来源:互联网 发布:php socket 编辑:程序博客网 时间:2024/06/07 06:11

读写锁的特征是写锁必须以独占的方式获取,读锁可以共享

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

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();        }    }}


阅读全文
0 0
原创粉丝点击