Singleton (escuela de doble inspección detallada, volátil)

//final类不可继承
final public class Single {
    //使用volatile修饰变量
    private static  Single single = null;
    public static Single create() {
        //第一次验校
        if (single == null) {
            //同步代码块(类锁)
            synchronized (Single.class) {
                //第一次验校
                if (single == null) {
                    single = new Single();
                }
            }
        }

        return single;
    }

    /**
     * 私有构造函数,外部访问不了
     */
    private Single() {
    }
}
  1. ¿Por qué la primera frase vaciar
    cuando sólo el método del código sincronizado entra, cuando se accede directamente detrás de volver de nuevo solo objeto crear la primera ejecución () sabemos patrón Singleton. Si no experimentamos la escuela por primera vez, cada hilo debe ir en el código sincronizado, y cada vez que tenga que ir a conseguir el bloqueo de sincronización de subprocesos para llevar a cabo. En el caso de múltiples hilos cada hilo para conseguir los objetos individuales a cola en espera para cerraduras de sincronización son liberados. Así primera prueba el papel de la escuela es mejorar la eficiencia del programa.

  2. ¿Por qué una segunda frase vaciar
    Por ejemplo: Si usted no tiene una segunda experiencia escolar, enhebrar una primera ejecución de la prueba a la escuela allí, se juzga a un solo nula ==. En este punto, sus recursos se adelantaron hilo B, la ejecución del programa B, entrar en el bloque sincronizado de código crea un objeto, y luego liberar el bloqueo de sincronización, y luego enhebrar una tiene los recursos para obtener el bloqueo de sincronización, y luego realizar bloque sincronizado, ya que antes de hilo la determinación de que la única == null, se crea un nuevo objeto directamente. Por lo que es una violación de la meta final de nuestro diseño.

  3. ¿Por qué variable para añadir la palabra clave volátil
    invita al lector a entender el principio volátil.

Publicado 70 artículos originales · ganado elogios 4 · Vistas 6336

Supongo que te gusta

Origin blog.csdn.net/qq_44837912/article/details/104818270
Recomendado
Clasificación