创建一个简单的缓存demo

/**   
* @Title: CacheDemo.java 
* @Package com.yql.Thread 
* @Description: TODO(用一句话描述该文件做什么) 
* @author A18ccms A18ccms_gmail_com   
* @date 2018年6月7日 上午11:44:56 
* @version V1.0   
*/ 
package com.yql.Thread;

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>();
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	private ReadWriteLock rwl = new ReentrantReadWriteLock();
	public Object getData(String key){
		rwl.readLock().lock();
		Object value = null;
		try{
			value = cache.get(key);
			if(value == null){
				rwl.readLock().unlock();
				rwl.writeLock().lock();
				try{
					if(value==null){
						value = "aaaaaaa";//从数据库中查询的结果
					}					
				}finally{
					rwl.writeLock().unlock();
				}
			}
		}finally{
			rwl.readLock().unlock();
		}
		return value;
	}

}

猜你喜欢

转载自blog.csdn.net/woshimuyi1025/article/details/80610832