有人问我,在接受采访时提出一个设计/实施Singleton模式在那里我有懒加载类,也不能使用synchronized关键字。 我得到了哽咽,不能拿出anything.I然后我开始阅读关于Java并发和concurrentHaspMap。 请检查下面的imlpementation,如果你看到任何问题与仔细检查锁定或与此实现的任何其他问题可否证实。
package Singleton;
import java.util.concurrent.ConcurrentHashMap;
public final class SingletonMap {
static String key = "SingletonMap";
static ConcurrentHashMap<String, SingletonMap> singletonMap = new ConcurrentHashMap<String, SingletonMap>();
//private constructor
private SingletonMap(){
}
static SingletonMap getInstance(){
SingletonMap map = singletonMap.get(key);
if (map == null){
//SingletonMap newValue= new SingletonMap();
map = singletonMap.putIfAbsent(key,new SingletonMap());
if(map == null){
map = singletonMap.get(key);
}
}
return map;
}
}