当前位置: 首页 > news >正文

长沙网站建设工作室兰州seo网站建设

长沙网站建设工作室,兰州seo网站建设,免费响应式企业网站源码,番禺网站建设怎样MemoryCache 缓存 实用,相关逻辑代码里已详细注释, 在Java中创建一个单例模式(Singleton Pattern)的MyMemoryCache类,可以采用多种方法,其中最常见的是使用“饿汉式”和“懒汉式”(线程安全和非线程安全&am…
MemoryCache 缓存 实用,相关逻辑代码里已详细注释,
在Java中创建一个单例模式(Singleton Pattern)的MyMemoryCache类,可以采用多种方法,其中最常见的是使用“饿汉式”和“懒汉式”(线程安全和非线程安全)的方法。这里,我将向你展示一个线程安全的“懒汉式”实现,使用双重检查锁定(double-checked locking)来确保线程安全和性能。
直接上代码。


import java.util.ArrayList;
import java.util.HashMap;/*** Description: [MemoryCache 缓存]* </p>** @author xx*/
public class MyMemoryCache<E> {// 使用volatile关键字确保多线程环境下的正确可见性private static volatile MyMemoryCache instance;// 缓存数据的Mapprivate HashMap<String, ArrayList<E>> cache;// 私有构造方法,防止外部实例化private MyMemoryCache() {this.cache = new HashMap<>();}// 提供一个公共的静态方法获取单例public static MyMemoryCache getInstance() {// 第一次检查,如果instance为null,才进入同步代码块if (instance == null) {synchronized (MyMemoryCache.class) {// 第二次检查,确保只有一个线程创建实例if (instance == null) {instance = new MyMemoryCache<>();}}}return instance;}/*** 每次添加数据时,如果键已存在则将新对象添加到对应的列表中,否则创建新的列表并添加对象* @param key* @param value*/public void put(String key, E value) {ArrayList<E> list;if (cache.containsKey(key)) {list = cache.get(key);} else {list = new ArrayList<>();}list.add(value);cache.put(key, list);}/*** 获取key 全部数据并删除缓存中key数据* @return*/public ArrayList<E> getKeyValuesAndClear(String key) {ArrayList<E> allData = cache.get(key);cache.remove(key);return allData;}/*** 获取全部数据并删除缓存中数据* @return*/public HashMap<String, ArrayList<E>> getAllAndClear() {HashMap<String, ArrayList<E>> allData = new HashMap<>(cache);cache.clear();return allData;}
}

上述代码中,MyMemoryCache类通过私有构造函数和getInstance方法实现了单例模式。volatile关键字确保了在多线程环境中,instance变量的写操作对其他线程是可见的。双重检查锁定(DCL)确保了即使在多线程环境下也只会创建一个实例,并且提高了性能,因为只有在第一次实例化时才需要进入同步代码块。

http://www.mmbaike.com/news/60750.html

相关文章:

  • 静态的网页wordpress新站seo外包
  • 上海网站建设 推荐站霸网络阿里大数据分析平台
  • 婚纱网站设计素材搜索引擎营销的特点有
  • 地方门户网站建设要求排名优化seo
  • 工具类网站开发百度竞价推广教程
  • 杭州的设计网站绍兴seo排名外包
  • 南通装修网站大全seo建站公司
  • 苏州网站建设方式小程序开发制作
  • 阿里云服务器做网站需要备案企业网站排名优化价格
  • 大连甘井子区地图seo关键词排名点击工具
  • 网站建设的上市公司郑州seo线上推广系统
  • 做网站含营销重庆森林影评
  • 台州椒江做网站关键词优化公司前十排名
  • 小企业怎么建网站平台长沙seo网络营销推广
  • 淘客的手机网站怎么做廊坊百度关键词排名平台
  • 宁夏银川做网站的公司有哪些电脑培训学校在哪里
  • 用老域名做网站还是新域名网络平台的推广方法
  • 网站开发建设中今天的新闻
  • fireworks个人网站模板软件开发公司联系方式
  • 郑州网站建设优化企业靠谱seo外包定制
  • 06627网页制作和网站建设seo工具查询
  • 什么网站做博客好广州seo网站
  • 杭州微网站建设公司sem优化托管公司
  • 西安网站建设地址销售管理软件
  • 一级a做爰片软件网站seo怎么收费
  • 织梦网站打开空白常州seo博客
  • 吉工之家找工作建筑工作咸宁网站seo
  • 购物网站建设需要什么资质杭州seo百度关键词排名推广
  • 常用的设计网站互联网营销师培训学校
  • 服务好的企业网站怎么建设宁德seo