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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄金龙 中级黑马   /  2013-2-25 14:10  /  1140 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class ReadWriteLockCacheDemo {

  2.         private Map<String,Object> cache = new HashMap<String, Object>();
  3.         private ReadWriteLock rwl = new ReentrantReadWriteLock();
  4.         public static void main(String[] args)
  5.         {

  6.         }
  7.         
  8.         public void getData(String key)
  9.         {        
  10.                 //与懒汉模式有点相似。。。加了读写锁而已..可以理解为AB锁不?有多大区别。。
  11.                 Object value=null;
  12.                 try
  13.                 {        
  14.                         rwl.readLock().lock();
  15.                         value = cache.get(key);
  16.                         if(value==null)
  17.                         {        
  18.                                 rwl.readLock().unlock();
  19.                                 try
  20.                                 {
  21.                                         rwl.writeLock().lock();
  22.                                         if(value==null)
  23.                                                 value = "request SQL";
  24.                                 }
  25.                                 finally
  26.                                 {
  27.                                         rwl.writeLock().unlock();
  28.                                 }
  29.                                 rwl.readLock().lock();
  30.                         }
  31.                 }
  32.                 finally
  33.                 {
  34.                         rwl.readLock().unlock();
  35.                 }
  36.                         
  37.         }
  38. }
复制代码

1 个回复

正序浏览
我来要技术分的。。。{:soso_e113:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马