A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐进 中级黑马   /  2012-10-26 12:16  /  930 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1 其实大家都看过

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马