Olá pessoal,
Estava analisando algumas classes que utilizam singleton e são acessadas concorrentemente por várias Threads. O código está escrito seguindo o exemplo:
...
private static MinhaClasse singleton;
private MinhaClasse() {
...
}
public static synchronized MinhaClasse getInstance() {
if (singleton = null) {
singleton = new MinhaClasse();
}
return singleton;
}
A aplicação irá rodar em um container web (Websphere) e cada aplicação está configurada para utilizar uma jvm exclusiva. Antes que alguém cite o fato de economia de memória, adianto que memória não é problema.
Gostaria de saber se há algum problema em fazer o seguinte:
...
private static final MinhaClasse singleton;
static {
singleton = new MinhaClasse();
}
private MinhaClasse() {
...
}
public static MinhaClasse getInstance() {
return singleton;
}
Desde já agradeço…