Używanie ConcurentHashMap i AtomicInteger jako zmiennych instancji w ramach klasy usługi Spring
Usiłuję zaimplementować bezpieczne dla wątków użycie ConcurentHashMap w ramach usługi singleton spring, która jest wstrzykiwana do kontrolerów:
@Service
public MyService{
final ConcurrentMap<String, AtomicInteger> myMap = new ConcurrentHashMap<String, AtomicInteger>(10) {
{/* initialize the ten key/values */
}
};
public int add(String key) {
return myMap.get(key).incrementAndGet();
}
// accessed via ajax loop (and controller), if value changes update display
public int getCount(String key) {
return myMap.get(key).get();
}
}
Czy istnieje lepszy sposób na zapewnienie bezpiecznego dostępu do wątku hashap? Jak mogę dostosować to do pracy w środowisku klastrowym? To jest do końcamoje drugie pytanie.