java使用map进行缓存 ConcurrentHashMap缓存
思路:
1.编写线程安全的单例
2.在new单例时初始化map
3.给单例类添加操作map的public公共方法,方便外部调用来操作map
.
代码:
package com.yunfeng.dj.common;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author dume
* @create 2022-01-26 9:37
* 短信上传序号缓存类
**/
public class SurnoticeSingleton {
private static volatile SurnoticeSingleton singleton;
/**
* 存上传序号<车牌号+点位,上传序号>
*/
private ConcurrentHashMap<String,String> surnoticeMap;
/**
* 存时间和surnoticeMap的key<时间,车牌号+点位>
*/
private ConcurrentHashMap<Long,String> datetimeMap;
private SurnoticeSingleton() {
this.surnoticeMap = new ConcurrentHashMap();
this.datetimeMap = new ConcurrentHashMap();
}
public static SurnoticeSingleton getInstance() {
if (singleton == null) {
synchronized (SurnoticeSingleton.class) {
if (singleton == null) {
singleton = new SurnoticeSingleton();
}
}
}
return singleton;
}
public ConcurrentHashMap<String,String> getSurnoticeMapAll(){
return this.surnoticeMap;
}
public ConcurrentHashMap<Long,String> getDatetimeMapAll(){
return this.datetimeMap;
}
public String getSurnoticeMap(String key){
if (this.surnoticeMap.containsKey(key)) {
return this.surnoticeMap.get(key);
}
return null;
}
public String getDatetimeMap(Long key){
if (this.datetimeMap.containsKey(key)) {
return this.datetimeMap.get(key);
}
return null;
}
public void putSurnoticeMap(String key,String value) {
if (!this.surnoticeMap.containsKey(key)) {
this.surnoticeMap.put(key, value);
}
}
public void putDatetimeMap(Long key,String value) {
if (!this.datetimeMap.containsKey(key)) {
this.datetimeMap.put(key, value);
}
}
public void removeSurnoticeMap(String key) {
if (this.surnoticeMap.containsKey(key)) {
this.surnoticeMap.remove(key);
}
}
public void removeDatetimeMap(Long key) {
if (this.datetimeMap.containsKey(key)) {
this.datetimeMap.remove(key);
}
}
public int getSurnoticeMapSize(){
return this.surnoticeMap.size();
}
public int getDatetimeMapSize(){
return this.datetimeMap.size();
}
}
本文介绍了一个基于ConcurrentHashMap实现的线程安全单例缓存类SurnoticeSingleton,该类用于存储短信上传序号及对应的时间戳,通过提供公共方法实现对缓存数据的安全增删查操作。
902

被折叠的 条评论
为什么被折叠?



