黑马程序员技术交流社区

标题: 关于缓存的一个小案例 [打印本页]

作者: 唐进    时间: 2012-10-26 12:16
标题: 关于缓存的一个小案例
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;
        }
}
这是一个关于缓存的声明,用了读锁和写锁,让缓存可以供多人访问,写的时候只能让一人进行写操作,分享一下,刚学的一个案例




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2