读写锁实现缓存系统demo

来源:互联网 发布:哭不出来 知乎 编辑:程序博客网 时间:2024/06/07 05:01
package uses;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class CacheDemo {private Map<String,Object> cache=new HashMap<String,Object>();private ReadWriteLock rwl=new ReentrantReadWriteLock();public  Object getData(String key){rwl.readLock();//如果都是读的话 可以让他进去这段代码,所以上读锁Object value=null;try {value=cache.get(key);if(value==null){rwl.readLock().unlock();//开始写的话,加写锁,释放读锁rwl.writeLock().lock();try {if(value!=null){value="aaaa";//实际是去数据库取数据}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rwl.writeLock().unlock();}rwl.readLock().lock();}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{rwl.readLock().unlock();}return value; }public static void main(String[] args) {  }}

1 0
原创粉丝点击