Duplicar posibles:
Efficient way to implement singleton pattern in JavaThread Safe ¿Manera eficiente de implementar un patrón singleton en Java?
que estaba leyendo este Best Singleton Implementation In Java, pero no es seguro para subprocesos.
Según wiki:
if(singleton==null) { synchronized(Singleton.class) { // this is needed if two threads are waiting at the monitor at the // time when singleton was getting instantiated if(singleton==null) singleton= new Singleton(); }
}
Pero encontrar utilidad Errores da dos errores en este : 1. Verifique nula. 2. Inicialización errónea incorrecta del campo estático.
¿Cuál es la mejor manera,
¿es correcto:
synchronized (Singleton.class) { if (singleton== null) { singleton= new Singleton(); } }
Este es un duplicado de la pregunta anterior; ver esa pregunta para más detalles. Pero no estoy seguro de que esa pregunta tenga estos enlaces útiles, así que: [Acerca del bloqueo doblemente comprobado en Java] (http://www.ibm.com/developerworks/java/library/j-dcl.html) que enlaza con [estos] (http://www.ibm.com/developerworks/library/j-jtp02244.html) [dos] (http://www.ibm.com/developerworks/library/j-jtp03304/) actualizaciones para Java 5. Ver también [artículo de Wikipedia sobre bloqueo con doble verificación] (http://en.wikipedia.org/wiki/Double-checked_locking). Pero para la respuesta real a su pregunta, vea la pregunta vinculada anteriormente. –