文档章节

高效缓存系统示例

JackY-Ji
 JackY-Ji
发布于 2016/04/18 23:02
字数 141
阅读 28
收藏 0
点赞 1
评论 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
粉丝 5
博文 30
码字总数 15521
作品 0
杭州
Android公共库(缓存 下拉ListView 下载管理Pro 静默安装 root运行 Java公共类)

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

Trinea ⋅ 2013/07/28 ⋅ 1

总结的一些android公共库

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

Trinea ⋅ 2012/07/16 ⋅ 1

快速开发ASP的类--EasyASP

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

匿名 ⋅ 2010/09/09 ⋅ 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

php开源框架--CmlPHP

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

雨空 ⋅ 2013/09/11 ⋅ 4

this_lucky/ynode

_ / / | / / / /_ / |/ / / / _ / / /| / // / // / //// |/_/_,/_/ 一个面向对象的高效 node.js mvc and REST 框架 English Readme 文档 Node 版本 大于等于 6.0.0 源码 source code https:......

this_lucky ⋅ 2017/02/27 ⋅ 0

简单说一下,你对CPU缓存的了解?

cpu缓存是位于cpu和内存之间的高速缓冲存储器,因为现在cpu的运算速度远远超过了内存的读写速度,因此设置cpu缓存来提高cpu的执行效率。目前主流的cpu存在三级缓存L1,L2,L3缓存,其中每个核...

nj-zhangmq ⋅ 2016/12/02 ⋅ 0

高性能 TCP & UDP 通信框架 HP-Socket v3.3.2 发布

  HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、J...

伤神小怪兽 ⋅ 2015/12/01 ⋅ 18

【圣诞呈献】高性能 Socket 组件 HP-Socket v3.1.1 正式发布

  HP-Socket 是一套通用的高性能 Windows Socket 组件包,包含服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP/UDP 通信系统。HP-Socket 对通信...

伤神小怪兽 ⋅ 2013/12/25 ⋅ 13

HP-Socket v3.3.1 发布,高性能 TCP & UDP 通信框架

  HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、J...

伤神小怪兽 ⋅ 2015/01/28 ⋅ 19

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nginx服务架构初探(四):nginx服务器的rewrite功能

nginx服务器的rewrite功能 1.nginx后端服务器组的配置 1>upstream name {…} name是给服务器组限的组名 2>server address [parameters]; address为服务器地址 parame......

余温灬未存 ⋅ 今天 ⋅ 0

layer.prompt使文本框为空的情况下也能点击确定

最近一直在使用layui,但是用到弹出层layer.prompt时,如果文本框是空的话点击确定没有反应,不能向下执行。 但是我又需要空值,看看我原来的代码。 123456789 layer.prompt...

孟飞阳 ⋅ 今天 ⋅ 0

Linux普通文件压缩工具gzip、Bzip2、xz

第六章 文件压缩和打包 6.1 压缩打包介绍 Linux环境常见压缩文件类型: .zip,.gz,.bz2,.xz, .tar.gz,.tar.bz2,.tar.xz 压缩打包的目的 方便文件传输 节省磁盘空间 减少传输花费的时间 ...

弓正 ⋅ 今天 ⋅ 0

移动弹窗基础知识浅析——IOS弹窗体系

摘要: 最为常见的【弹窗】反而是最“捉摸不定”的东西。各种类型的弹窗傻傻分不清楚,不知道在什么场景下应该用哪种弹窗。尤其是遇到“二次确认”等场景…… 因此,打算从头整理移动弹窗的基...

阿里云云栖社区 ⋅ 今天 ⋅ 0

zabbix短信报警统计以及报表展示

一、需求 由于我们的业务报警比较频繁,之前是针对每个报警进行具体处理,但是有时还会重复出现,或者后续处理有时忘记跟进等,因此进行报警短信的统计,可以针对一些问题与业务跟进,明确后...

o翡翠谷o ⋅ 今天 ⋅ 0

JNI 输出LOG

1、导入log头文件。在你使用的 .c/ .cpp 文件中,导入 log.h 头文件。 #include<android/log.h> 2、在android.mk 加上 LOCAL_LDLIBS := -llog 或 LOCAL_SHARED_LIBRARIES := liblog 3、定义L......

国仔饼 ⋅ 今天 ⋅ 0

主线程pthread_exit 作用

#include <iostream>#include <pthread.h>#include <unistd.h>using namespace std;#define NUM_THREADS 10void* say_hello(void* args){ int i = *((int*)args);/......

xxdd ⋅ 今天 ⋅ 0

崛起于Springboot2.X之Mybatis-xml方式操作mysql数据库(3)

序言:当第一篇讲道Mybatis的时候,只要使用过mybatis的java程序员100%都会知道这种方式,因为这是最广泛最全面的编写sql操作mysql数据库的方式,高级sql的编写往往通过xml方式,接下来进入正...

木九天 ⋅ 今天 ⋅ 1

移动弹窗基础知识浅析——IOS弹窗体系

摘要: 最为常见的【弹窗】反而是最“捉摸不定”的东西。各种类型的弹窗傻傻分不清楚,不知道在什么场景下应该用哪种弹窗。尤其是遇到“二次确认”等场景…… 因此,打算从头整理移动弹窗的基...

猫耳m ⋅ 今天 ⋅ 0

spring elasticsearch 2.4 date 日期

1.mappingPUT user_behavior { "mappings": { "user_behavior": { "properties": { "date": { "type": "createDate", ......

xiaomin0322 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部