文档章节

高效缓存系统示例

JackY-Ji
 JackY-Ji
发布于 2016/04/18 23:02
字数 141
阅读 32
收藏 0

package com.fenxiang.jiyajie;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.*;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;

public class CacheTest {

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

 private ReadWriteLock rtl = new ReentrantReadWriteLock();//读写锁
 
 public Object getData(String key){
  rtl.readLock().lock();
  Object data = null;
  try{
           data = cache.get(key);
     if(data == null){
           rtl.readLock().unlock();
           rtl.writeLock().lock();
     try{
         if(data == null){//双重检查,避免等待的多个写锁重复写入数据
              data ="DB"; 
          }
     }finally{
         rtl.readLock().unlock();//在finally 中释放读锁
     }
         rtl.readLock().lock();
   }
  
  }finally{
   rtl.readLock().unlock();//在finally 中释放读锁
  }
  return data;
 }
}

© 著作权归作者所有

共有 人打赏支持
JackY-Ji
粉丝 11
博文 35
码字总数 18318
作品 0
杭州
Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

最新内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类) 介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉及底部...

Trinea
2013/07/28
839
1
总结的一些android公共库

最新最准确内容建议直接访问原文:Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类) 介绍总结的一些android公共库,包含缓存(图片缓存、预取缓存)、公共View(下拉...

Trinea
2012/07/16
0
1
快速开发ASP的类--EasyASP

EasyASP 是一个简单方便的用来快速开发ASP程序的类库。EasyASP 包含完善的全参数化查询多数据库操作、高效Json数据生成与解析、各种字符串及日期处理函数、功能强大动态数组处理、领先的文件...

匿名
2010/09/09
5.5K
0
coldstone/easyasp

##EasyASP v3.0 作者 : coldstone (coldstone[at]qq.com) 官网 : http://www.easyasp.cn GIT : https://git.coding.net/coldstone/easyasp.git git 镜像: GitHub : https://github.com/cold......

coldstone
2015/02/11
0
0
php开源框架--CmlPHP

简介 CmlPHP从12年开始开发。从最早追求尽可能轻量,php5.2-的语法。到后面不断总结工作中碰到的实际的问题,加入工程化的一些东西。加入Composer的支持。加入了很多可以减少程序员开发时间的...

雨空
2013/09/11
6.1K
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES6 Promise

Promise promise是异步编程的一种解决方案 1 什么是异步? 异步模式,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则...

NDweb
16分钟前
0
0
Python百分登顶年度编程语言排行榜

今天 IEEE Spectrum 发布了 2018 年度顶级编程语言排行榜。该榜单可根据流行趋势、职业方向、语言类型等多个标准各自细分生成榜单,也可以综合多个标准进行排列,使用者可以根据自己的需求过...

六库科技
20分钟前
0
0
consul笔记

安装和启动就不说了,很简单。 注册一个服务: http://localhost:8500/v1/agent/service/register put请求,json格式内容如下 { "ID": "userServiceId", //服务id "Name": "userService", //服...

朝如青丝暮成雪
20分钟前
0
0
iOS CollectionView 的那些事

UICollectionView是开发中用的比较多的一个控件,本文记录UICollectionView在开发中常用的方法总结,包括使用UICollectionViewFlowLayout实现Grid布局、添加Header/Footer、自定义layout布局...

aron1992
21分钟前
0
0
linux tar.gz zip 解压缩 压缩命令

http://apps.hi.baidu.com/share/detail/37384818 download ADT link http://dl.google.com/android/ADT-0.9.6.zip download SDK link http://dl.google.com/Android/android-sdk_r11-linux_......

owensliu
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部