Hallo zusammen,
ich stelle mir gerade die Frage, ob es in der Testklasse reicht nur den Singleton als volatile zu deklarieren oder die Map auch volatile deklariert sein muss um in einer Multithreadingumgebung sicherzustellen, dass auch die Zugriffe auf die Strings in der Map sichergestellt sind.
Vielen Dank im Voraus
ich stelle mir gerade die Frage, ob es in der Testklasse reicht nur den Singleton als volatile zu deklarieren oder die Map auch volatile deklariert sein muss um in einer Multithreadingumgebung sicherzustellen, dass auch die Zugriffe auf die Strings in der Map sichergestellt sind.
Vielen Dank im Voraus
Code:
public class SingletonMapContainer {
private volatile HashMap<String, String> map = new HashMap<String, String>();
private SingletonMapContainer() {
//Singleton
}
@SuppressWarnings("synthetic-access")
private static class SingletonHolder {
private static volatile SingletonMapContainer INSTANCE = new SingletonMapContainer();
}
@SuppressWarnings("synthetic-access")
public static SingletonMapContainer getInstance() {
return SingletonHolder.INSTANCE;
}
public HashMap<String, String> getMap() {
return this.map;
}
public void setMap(HashMap<String, String> map) {
this.map = map;
}
}