基于读写锁的缓存demo

原创 2012年03月25日 15:04:23
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 = "aaaa";//实际是去queryDB();
					}
				}finally{
					rwl.writeLock().unlock();
				}
				rwl.readLock().lock();
			}
		}finally{
			rwl.readLock().unlock();
		}
		return value;
	}
}

相关文章推荐

读写锁使用的Demo分析

之前我们提到的锁都是排它锁(同一时刻只允许一个线程进行访问),而读写锁维护了一对锁,一个读锁,一个写锁。读写锁在同一时刻允许多个线程进行读操作,但是写线程访问过程中,所有的读线程和其他写线程均被阻塞。...

多线程Demo-ReentrantReadWriteLock读写锁

package Thread; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Reentr...

利用读写锁写一个缓存系统

import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReadWriteLock; imp...

多线程学习(七)-读写锁(ReentrantReadWriteLock)与应用(缓存)

读写锁(ReentrantReadWriteLock):分为读锁和写锁 读写锁机制      读-读不互斥      读-写互斥      写-写互斥 如果只读数据,可以多个线程读,但是不能同时有写的...

Lock和读写锁ReadWriteLock和缓存实例

1:lock和synchronized对比 import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Re...

JAVA 并发编程-读写锁之模拟缓存系统(十一)

在多线程中,为了提高效率有些共享资源允许同时进行多个读的操作,但只允许一个写的操作,比如一个文件,只要其内容不变可以让多个线程同时读,不必做排他的锁定,排他的锁定只有在写的时候需要,以保证别的线程不会...

多线程 : 读写锁实现缓存系统

import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.concurrent...

读写锁调优缓存对象并发同步问题引申思考分析

业务问题    最近调优一个多线程使用共享Map对象本地缓存性能问题。原有实现背景为Map对象存储从Redis加载的数据,如果对应Redis数据为空,需要调用Redis加载逻辑,这段逻辑封装在一个更...

《黑马程序员》 读写锁之缓存系统

------- android培训、java培训、期待与您交流! ----------public class CachedDemo { /** * 缓存系统 * 既然是存的缓存系...
  • xfgzss
  • xfgzss
  • 2014年04月01日 06:46
  • 467

(9)java5的线程【锁lock】与【读写锁_以及模拟缓存(妙用)】技术

同步锁(Lock)     通常认为:Lock提供了比synchronized方法和synchronized代码块更广泛的锁定操作,Lock更灵活的结构,有很大的差别,并且可以支持多个Con...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于读写锁的缓存demo
举报原因:
原因补充:

(最多只允许输入30个字)