文档章节

高效缓存系统示例

JackY-Ji
 JackY-Ji
发布于 2016/04/18 23:02
字数 141
阅读 36
收藏 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
861
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

没有更多内容

加载失败,请刷新页面

加载更多

解析JQuery中each方法的使用

each() 方法规定为每个匹配元素规定运行的函数。写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 概述: each() 方法规定为每个匹配...

前端攻城小牛
5分钟前
0
0
深入解析Vue开发动态刷新Echarts组件的教程

需求背景:dashboard作为目前企业中后台产品的“门面”,如何更加实时、高效、炫酷的对统计数据进行展示,是值得前端开发工程师和UI设计师共同思考的一个问题。今天就从0开始,封装一个动态渲...

peakedness丶
18分钟前
2
0
memcached

memcached 为了避免内存碎片化(传统的内存管理方式是,使用完通过malloc分配的内存后通过free来回收内存,这种方式容易产生内存碎片并降低操作系统对内存的管理效率),采用了 slab allocatio...

Cobbage
19分钟前
2
0
keepalived的介绍及配置高可用集群

12月19日任务 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群 集群介绍 根据功能划分为2类:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外...

robertt15
19分钟前
5
0
WiFi攻击的三种方式

导读 WiFi的安全问题已经引起了不少的使用者重视,甚至已经出现草木皆兵的现象。那么黑客到底是如何做到绕过身份验证来获取WiFi使用权的呢?主要有以下三种方式,其中最后一种方式十分简单。 ...

问题终结者
33分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部