Deadlock es un error a nivel del sistema operativo y es la abreviatura del punto muerto del proceso. Dijkstra lo propuso por primera vez al estudiar algoritmos bancarios en 1965. Es uno de los problemas más difíciles en los sistemas operativos informáticos e incluso todo el campo de programación concurrente.
De hecho, hay muchas cosas en el mundo de las computadoras que deben resolverse con múltiples hilos, porque de esta manera, los recursos se pueden usar para maximizar la eficiencia de la informática. Sin embargo, de hecho, hay muchas situaciones en los sistemas informáticos donde los recursos solo pueden ser utilizados por un proceso a la vez, como las impresoras, y solo un proceso puede controlarlo al mismo tiempo. En un entorno de programación multicanal, varios procesos a menudo comparten dichos recursos, y un proceso puede requerir más de un recurso. Por lo tanto, varios procesos competirán por recursos limitados y el orden de avance será de manera incorrecta, formando así una situación de ciclo indefinido que espera. Llamamos a este punto muerto estatal. En pocas palabras, el punto muerto se refiere a una situación en la que múltiples procesos en bicicleta a través de los recursos que ocupan y permanecen en un punto muerto indefinidamente. Obviamente, si no hay fuerza externa, entonces todos los procesos involucrados en el punto muerto siempre serán bloqueados.
Nombre del archivo: DeadThreadByextend.java
Nota:
1. Al iniciar un hilo, se puede usar el método de inicio. También se puede llamar al método de ejecución, pero solo es equivalente a una llamada normal y se ejecuta en el hilo actual.
2. Sincronizado no puede modificar directamente las variables.
3. El bloque sincronizado no obliga al acceso de un solo hilo a las variables en el bloque. Simplemente significa que el parámetro sincronizado (Args) se bloquea al ejecutar declaraciones dentro del bloque y no se libera hasta que se termine la ejecución.
paquete com.ycf.study.thread; fuentes de clases {int a; public void seta (int x) {sincronizado (this) {this.a = x; intent {hilt.sleep (2000);} catch (interruptedException e) {e.printstacktace ();}}} public class DeadThreadByxd {Public static Void Main (String (String (String (String (String (Sings) {] s1 = new Sources (); fuentes s2 = new Sources (); Class MyThread1 extiende java.lang.thread {@Override public void run () {System.out.println ("Thread 1 inicia"); SynChronized (S1) {System.out.println ("Thread 1 se aplica a Modify S1"); 1 sale y se comunica bloquear +++++++++++++++++++++ ");}} class myThread2 extiende java.lang.thread {@Override public void run () {System.out.println (" hilo 2 comienza "); sincronizado (s2) {system.println (" Thread 2 aplicados a modernifiDing a modsmed ". s2 "); s2.seta (20); system.out.println (" hilo 2 cambios s2 completos "); system.out.println (" El hilo 2 se aplica para modificar s1 "); s1.seta (10); system.out.println (" hilo 2 cambios s1 completos ");} system.println (" Threat 2 exIts y recordes las las salidas y las salidas de los recordatorios y los recordaciones de los recordatorios de los recordatorios de los recordatorios y recordaciones de los recordatorios de los recordatorios de los recordatorios y recordaciones de los recordatorios de los recordatorios de los recordatorios y recordaciones de los recordatorios de los recordatorios y recordaciones de los recordatorios y recordaciones de los recordatorios de los recordatorios de los recordatorios y recordaciones. Lock ++++++++++++++++ ");}} myThread1 mt1 = new MyThread1 (); MyThread2 mt2 = new MyThread2 (); mt1.start (); mt2.start ();}}Resumir
Lo anterior se trata del ejemplo del código de punto muerto de hilo Java En este artículo, espero que sea útil para todos. Si hay alguna deficiencia, deje un mensaje para señalarlo. Gracias amigos por su apoyo para este sitio.