Hable acerca de su comprensión de la cerradura? Punto muerto?

Hable acerca de su comprensión de la cerradura?

Cerradura se refiere a la programación concurrente, con el fin de consistencia de los datos de garantía cuando varios subprocesos al mismo tiempo que operan un conjunto de recursos , tenemos que alinear un recurso multi-hilo de funcionamiento, y este proceso es liberar el proceso de cierre de bloqueo y de recursos como si fuera a ir a los aseos públicos, debe alinearse uno por uno para su uso, y la necesidad de cerrar la puerta y abrir la puerta durante el uso de la misma.

Hable acerca de su comprensión del punto muerto?

Estancamiento se refiere a dos o más hilos en el proceso de implementación, debido a la competencia por los recursos o un fenómeno de bloqueo causados debido comunican entre sí , sin fuerza externa, no van a ser capaces de promoverlo. En este momento, dicen que el sistema se encuentra en estado de interbloqueo o sistema para producir un callejón sin salida, que siempre está en el proceso de espera de otro proceso que se llama el punto muerto.

simular manualmente un punto muerto?

público  clase DeadLockExample {
     público  estático  void main (String [] args) {
         // interbloqueo 
        DEADLOCK (); 
    } 

    pública  estática  void () {DEADLOCK 

        lock1 Object = new new Object (); 
        Objeto Lock2 = new new Object (); 

        // hilo lock1 han tratado de conseguir un Lock2 
        nueva nuevo la rosca (() -> {
             el sincronizada (lock1) { 
                System.out.println ( "conseguir el éxito lock1" );
                 el intento  {
                    TimeUnit.SECONDS.sleep (. 3 ); 
                } la captura (InterruptedException E) { 
                    e.printStackTrace (); 
                } 
                // intenta adquirir el bloqueo Lock2 
                la sincronizada (Lock2) {
                     // obtener el nombre del hilo actual 
                    System.out.println (Thread.currentThread () getName () ). ; 
                } 
            } 
        }) Inicio ();. 

        // hilo tiene dos Lock2 tratando de conseguir lock1 
        nuevo nuevo el hilo (() -> {
             el sincronizada (Lock2) { 
                System.out.println ( "conseguir el éxito Lock2" );
                 {el intento
                    TimeUnit.SECONDS.sleep ( 3. ); 
                } La captura (InterruptedException E) { 
                    e.printStackTrace (); 
                } 
                // intenta adquirir el bloqueo Lock1 
                la sincronizada (lock1) {
                     // obtener el nombre del hilo actual 
                    System.out.println (Thread.currentThread ( ) .getName ()); 
                } 
            } 
        }) Inicio ();. 


    } 

}

El resultado:

preguntas comunes de la entrevista:

(1) Hable acerca de su comprensión de la cerradura?

(2) ¿Qué es un callejón sin salida? simular manualmente un punto muerto?

 Referencia / buen texto:

Baidu Enciclopedia - Punto muerto

https://baike.baidu.com/item/%E6%AD%BB%E9%94%81/2196938?fr=aladdin

Retractor supuesto - código fuente de Java y la entrevista Zhenti

https://kaiwu.lagou.com/course/courseInfo.htm?courseId=59#/detail/pc?id=1766

 

Supongo que te gusta

Origin www.cnblogs.com/liaowenhui/p/12610562.html
Recomendado
Clasificación