Usando ConcurentHashMap e AtomicInteger como variáveis de instância dentro de uma classe de serviço de mola
Eu estou tentando implementar o thread-safe uso de ConcurentHashMap dentro de serviço de mola singleton que é injetado em controladores:
@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();
}
}
Existe uma maneira melhor de fazer acesso a um hashmap thread-safe? Como eu poderia adaptar isso para trabalhar em um ambiente de cluster? É um follw atéminha outra pergunta.