多线程学习--写一个简单的缓存系统
来源:互联网 发布:手机商城网页源码下载 编辑:程序博客网 时间:2024/06/05 06:33
package Demo12;
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> map=new HashMap<String, Object>();
public static void main(String[] args) {
}
private ReadWriteLock lock = new ReentrantReadWriteLock();
public synchronized Object getObject(String key){
Object value=null;
lock.readLock().lock();
try{
value= map.get(key);
if(value==null){
lock.readLock().unlock();
lock.writeLock().lock();
try{
if(value==null){
value="aaa" ;//实际是取数据库中的数据queryDB();
}
}finally{
lock.writeLock().unlock();
}
lock.readLock().lock();
}
}finally{
lock.readLock().unlock();
}
return value;
}
}
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> map=new HashMap<String, Object>();
public static void main(String[] args) {
}
private ReadWriteLock lock = new ReentrantReadWriteLock();
public synchronized Object getObject(String key){
Object value=null;
lock.readLock().lock();
try{
value= map.get(key);
if(value==null){
lock.readLock().unlock();
lock.writeLock().lock();
try{
if(value==null){
value="aaa" ;//实际是取数据库中的数据queryDB();
}
}finally{
lock.writeLock().unlock();
}
lock.readLock().lock();
}
}finally{
lock.readLock().unlock();
}
return value;
}
}
0 0
- 多线程学习--写一个简单的缓存系统
- 多线程学习---写一个简单的线程
- 多线程学习--写一个简单的定时器
- 写一个缓存系统的伪代码
- 写一个简单的新闻发布系统
- 多线程:一个简单的售票系统
- 写了一个Java的简单缓存模型
- 如何利用多线程写一个简单的定时器?
- 利用读写锁写一个缓存系统
- 15分钟搭建一个简单的Java缓存系统
- 学习VC多线程时随手写的一个小例子
- c#写的一个简单的邮件发送系统
- c++写的一个简单的管理系统
- 用多线程写一个售票系统
- 一个简单的多线程
- 一个用hibernate+struts写的简单日志系统
- Tizen系统开发尝试,写一个简单的游戏
- 用python写一个简单的推荐系统
- 15-11-16 Eclipse 操作菜单汉译之 Navigate [浏览]
- Linux 卸载mysql
- 如何应对大数据量地物属性查询- -属性图层来帮忙
- web应用性能优化--采用gzip静态压缩+动态压缩方式压缩js、css文件
- yii2 将js注册到页面的底部
- 多线程学习--写一个简单的缓存系统
- BerkeleyDB的使用
- javascript js 取得网页的url中带的参数 js 获取 url 参数
- 【Extjs】动态单选按钮
- AndroidStudio下ProGuard混淆打包
- 同时启动2个tomcat配置
- yii2 模块中的验证码使用
- Java正则表达式
- Text Kit学习(入门和进阶)