| import java.util.HashMap; import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import javax.print.attribute.HashAttributeSet;
 
 public class cacheTest {
 private static HashMap<String, Object> map = new HashMap<String, Object>();
 
 public static void main(String[] args) {
 for (int i = 1; i < 11; i++) {
 
 }
 }
 
 public static Object load(String key) {
 ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
 rwl.readLock().lock();
 Object object = null;
 try {
 object=map.get(key);
 if (object == null) {
 rwl.readLock().unlock();
 rwl.writeLock().lock();
 try {
 if (object != null) {
 object = "aa";
 map.put(key, object);
 System.out.println("writting....");
 }
 } finally {
 rwl.writeLock().unlock();
 }
 
 rwl.readLock().lock();
 }
 } finally {
 rwl.readLock().unlock();
 }
 return object;
 }
 }
 这是一个关于缓存的声明,用了读锁和写锁,让缓存可以供多人访问,写的时候只能让一人进行写操作,分享一下,刚学的一个案例
 |