前一段学习过java当中readWriteLock的使用,运用所学编写一个缓存器。
package thread; import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class CacheTest { private Map<String, Object> cache = new HashMap<String, Object>(); public static void main(String[] args) { } private ReadWriteLock rwl = new ReentrantReadWriteLock(); /** * 如果多个线程来读取缓存可以同时读取,但是写入缓存的必须是一个 * @param key * @return */ public Object getDate(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 = "查询数据库获取数据!"; cache.put(key, value);//放入缓存 } } finally { rwl.writeLock().unlock();//释放写锁 } rwl.readLock().lock();//加上读锁 } } finally { rwl.readLock().unlock();//释放读锁 } return value; } }
以后对于读写锁有更多的应用,缓存是必不可少的。
相关推荐
java 编写的缓存工具 SimpleCache。
java代码编写缓存方法,tomcat内存配置,连接池设定
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作! 1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。 3. 支持缓存数据分区规则...
一种用Java编写的Android强类型缓存GraphQL客户端
运用java语言实现了高速缓存,并在实现了不用缓存的对比,1000个线程并发时相差十倍的时间,10000个线程时相差四十倍的时间。
脾Java缓存库Spleen是用Java编写的存储缓存库,它允许存储内存大小限制以及每个存储数据的超时限制。 脾脏提供两种存储类型,即使用简单线程或多线程删除的观察者。 简单的名称空间启动一个单独的线程来检查要删除的...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
用Java从头开始编写的文件系统API的实现 首先编译类文件:filehandle.java FileBuffer.java FileServer.java fileSystemAPI.java FileSystemClientAPI.java testClient.java确保所有文件都在同一目录中。 首先通过...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
用Java编写的用于教育目的的轻量级缓存框架 API 此框架中提供了以下方法: /** * Get size of cache * * @return size of cache */ int getSize(); /** * Put a value into cache with a specified key * * @...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...
SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对业务代码零侵入 2. 支持使用Redis和Memcached作为后端缓存。3. 支持缓存数据分区规则的...