我有一个Singleton类处理一种具有不同对象的Hashmap缓存。
(键的格式直接与存储在映射中的对象类型相关 - 因此映射是of)
地图上可以执行三个不同的操作:添加、获取、删除。
我通过使用公共入口方法来保护对地图的访问(没有强烈的访问):
地图上可以执行三个不同的操作:添加、获取、删除。
我通过使用公共入口方法来保护对地图的访问(没有强烈的访问):
public synchronized Object doAction(String actionType, String key, Object data){
Object myObj = null;
if (actionType.equalsIgnorecase("ADD"){
addDataToMyMap(key,data);
} else if (actionType.equalsIgnorecase("GET"){
myObj = getDataFromMyMap(key);
} else if (actionType.equalsIgnorecase("REM"){
removeDataFromMyMap(key);
}
return myObj;
}
注:
该地图是私有的。方法addDataToMyMap(),getDataFromMyMap()和removeDataFromMyMap()也是私有的。只有入口方法和类本身的静态getInstance()是公共的。
如果只能通过该方法使用地图,您确认它对于并发访问是线程安全的吗?
如果对于Map是安全的,我想这个原则可以应用到任何其他共享资源上。
非常感谢您提前的回答。
David
synchronized
关键字? - nhahtdh