`

java实现一个简单的缓存

阅读更多
package concurrent.lock;

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

public class CacheDemo {

	private Map<String, Object> cache = new HashMap<String, Object>();
	public static void main(String[] args) {
		
	}

	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";//访问数据库
					}
				}finally{
					rwl.writeLock().unlock();
				}
				rwl.readLock().lock();
			}
		}finally{
			rwl.readLock().unlock();
		}
		return value;
	}
}

分享到:
评论

相关推荐

    Java利用ConcurrentHashMap实现本地缓存demo

    Java利用ConcurrentHashMap实现本地缓存demo; 基本功能有缓存有效期、缓存最大数、缓存存入记录、清理线程、过期算法删除缓存、LRU算法删除、获取缓存值等功能。 复制到本地项目的时候,记得改包路径哦~

    java map 实现缓存技术

    总的来说,Java Map提供了一种简单而有效的方式实现缓存技术。开发者可以根据具体需求选择合适的Map实现,并结合各种策略来管理和维护缓存,以提升系统的响应速度和效率。在实际应用中,还可以考虑使用第三方库如...

    java 通过文件实现缓存

    java实现缓存可以通过读取本地文件的方式实现,改代码就是通过读取本地文件实现缓存的简单例子

    仿redis缓存Java版轻量级缓存组件LocalCache

    仿redis缓存Java版轻量级缓存组件LocalCache,基于JVM内存实现数据缓存及过期机制

    java简单的缓存池实现

    java缓存原理,简单的缓存池实现,java缓存原理,简单的缓存池实现,java缓存原理,简单的缓存池实现,java缓存原理,简单的缓存池实现。

    分页缓存

    这里我们以Ehcache为例,讨论如何构建一个简单的分页缓存系统。 1. **Ehcache配置**:首先,我们需要在项目中引入Ehcache的依赖,并配置一个缓存策略。在`ehcache.xml`配置文件中,定义一个缓存区域,设置其大小、...

    java实现简单直播系统

    在Java中实现一个简单的直播系统是一项复杂而有趣的任务,它涉及到多个关键的技术点。下面将详细阐述这个过程中可能涉及的主要知识点: 1. **网络编程**:直播系统的基础是网络通信,Java中的Socket编程或者NIO(非...

    Java实现一个简单的缓存方法

    【Java实现简单的缓存方法】 缓存是一种优化技术,它通过存储经常访问的数据来提高应用程序的性能。在Java中,我们可以自己实现一个简单的缓存系统,以满足基本的缓存需求。以下是一个简化的实现过程。 首先,我们...

    java Map实现的cache manager,定时清除缓存里面的值

    java Map实现的cache manager,定时清除缓存里面的值,使数据一致保持最新

    java 缓存的简单实现

    java缓存实现demo完整实例,很不错的资源,欢迎大家来下载学习。/** * 此函数接受一个对象列表,数目不定,opration:表是触发的事件 * eg:change;fnClear:表示初始化下拉框。var_args表示多个下拉框... */ ...

    java shiro实现退出登陆清空缓存

    Apache Shiro 是一个强大且易用的 Java 安全框架,提供身份验证、授权、会话管理和加密服务。在 Java Web 应用中,Shiro 可以帮助开发者轻松地处理用户登录、登出以及权限控制等问题。在本文中,我们将讨论如何利用 ...

    Xmemcached一个java实现的分布式缓存

    Xmemcached是一个高性能、线程安全的Java实现的分布式缓存系统,专为Memcached设计。这个库的主要目标是提供简单、快速、无阻塞的客户端API,以便于开发人员在Java应用程序中集成和利用Memcached的强大功能。下面将...

    java实现cache小实例

    下面是一个简单的Java缓存实现,使用HashMap作为基础存储结构,并实现了LRU淘汰策略: ```java import java.util.HashMap; import java.util.Map; public class SimpleCache, V&gt; { private final int capacity; ...

    java之反射优化(缓存思路)源码

    2. **软引用**:使用Java的`SoftReference`可以创建一个弱化的缓存,这样在内存紧张时,JVM会自动回收这些不再使用的反射对象,以释放内存。 ```java public class ReflectionUtil { private static Map, ...

    Java 中常用缓存Cache机制的实现

    下面是一个简单的缓存管理器的实现: CacheManager 类的实现: CacheManager 类是一个简单的缓存管理器,它使用 HashMap 来存储缓存对象。 CacheManager 类提供了多种方法来操作缓存,例如获取缓存对象、设置...

    java实现简单远程监控

    在IT行业中,远程监控是一项重要的技术,...总的来说,Java实现远程监控是一个涉及JMX、RMI以及网络编程的综合过程。通过合理设计和实现,我们可以构建出一个强大且灵活的监控解决方案,有效管理和维护我们的Java应用。

    如何基于LoadingCache实现Java本地缓存

    Java 本地缓存基于 LoadingCache 实现详解 在 Java 中,缓存是一种提高应用程序性能的重要手段。 LoadingCache 是 Guava 库提供的一种缓存实现方式,本文将详细介绍如何基于 LoadingCache 实现 Java 本地缓存。 一...

    高速缓存实现源码

    本项目通过源码实现了一个简单的高速缓存,展示了其在多线程并发环境下的性能优势。 在Java中,高速缓存的实现通常依赖于数据结构如哈希表(HashMap)或并发容器如ConcurrentHashMap。哈希表提供快速的查找和插入...

Global site tag (gtag.js) - Google Analytics