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