
1、读写锁将一个资源(如文件)的访问分为两个锁,一个读写锁。
2、因为读写锁,多个线程之间的读写操作才不会发生冲突。
3、ReadWriteLock是读写锁,它是一个界面,RentrantReadWriteLock实现了这个界面。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | public class CacheDemo {
private Map<String, Object> cache = new HashMap<>();
private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
public static void main(String[] args) {
}
public Object getData(String key) {
Object value = null ;
readWriteLock.readLock().lock();
try {
value = cache.get(key);
if (value == null ) {
readWriteLock.readLock().unlock();
readWriteLock.writeLock().lock();
try {
value = queryDB();
} finally {
readWriteLock.writeLock().unlock();
}
readWriteLock.readLock().lock();
}
} finally {
readWriteLock.readLock().unlock();
}
return value;
}
public Object queryDB() {
return "aaaa" ;
}
}
|
以上就是java读写锁的介绍,希望对大家有所帮助。更多Java学习指路:Java基础