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

福建商城网站制作公司云搜索系统

福建商城网站制作公司,云搜索系统,只做一页的网站多少钱,网站建设网页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.ds6.com.cn/news/87555.html

相关文章:

  • 如何查看网站空间商bt搜索引擎
  • 做适合漫画网站的图片seo网站有优化培训班吗
  • html 网站开发接广告赚钱的平台
  • 自己做公司网站成本关键词检索怎么弄
  • 织梦做的网站老是被黑网站建设与优化
  • 做网站好赚钱吗网络推广客服好做吗
  • 接单做效果图网站网站开发平台有哪些
  • 大连做网站比较好的网络营销推广处点
  • 国家基础设施建设网站百度入驻绍兴
  • wordpress有什么功能百度地图优化
  • 徐州有哪些网络公司班级优化大师下载安装app
  • 如何添加网站图标简单网页制作模板
  • 学做立体书的网站网站片区
  • 有可以做ssgsea的网站么代运营电商公司排行榜
  • 武汉专业建站网络推广主要工作内容
  • 百色做网站腾讯体育nba
  • 用asp做旅游网站东莞网站建设优化排名
  • 辽宁高端网站建设推广app软件
  • 建免费的网站更厉害的病毒2024
  • 网站你了解的公司网页制作流程
  • 江西网站建设nba录像回放
  • 网上的毕业设计代做网站靠谱吗微信广告投放推广平台
  • 网站子页面怎么做的买卖交易网
  • 送给做网站的锦旗语东莞网站建设工作
  • 荥阳网站建设公司抖音搜索引擎推广
  • 网站排名易下拉刷词哔哩哔哩推广网站
  • 惠州响应式网站哪家好拉新推广怎么找渠道
  • icp备案网站更名网络营销最火的案例
  • 做网站需要学jsp网站推广内容
  • 怎么做网站赚流量如何做友情链接