Com gestionar el bloqueig a Java?

Aquest article tracta el concepte de Deadlock In Java amb un exemple que mostra com es bloquegen els fils d’un programa de diversos fils.

Suporta el llenguatge de programació Java . Implica diversos fils que s’executen simultàniament per a la multitarea. Però en determinats casos o per certes deficiències, els fils es troben en estat d’espera per sempre. En aquest article, entendreem la condició de bloqueig a i diferents maneres d’evitar-ho. A continuació es detallen els temes tractats en aquest bloc:



Què és Deadlock a Java?

El bloqueig a Java és una condició en què dos o més fils estan bloquejats per sempre, esperant-se els uns als altres.



Això sol passar quan diversos fils necessiten els mateixos panys però els obtenen en ordres diferents. a Java pateix la situació de bloqueig a causa de la paraula clau sincronitzada.

convertint binari a decimal en java

Fa que el fil d’execució es bloquegi mentre s’espera el bloqueig o el monitor associat al que s’especifica objecte .



Impasse a Java: Edureka

Exemple de bloqueig

public class Exemple {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Fil t1 = Fil nou () {public void run () {synchronized (r1) {System. out.println ('Fil 1: bloquejat r1') proveu {Thread.sleep (100)} catch (excepció e) {} sincronitzat (r2) {System.out.println ('Fil 1: bloquejat r2')}}} } Fil t2 = fil nou () {public void run () {synchronized (r1) {System.out.println ('Fil 2: bloquejat r1') proveu {Thread.sleep (100)} catch (excepció e) {} sincronitzat (r2) {System.out.println ('Fil 2: bloquejat r2')}}}} t1.start () t2.start ()}}
 Sortida: Fil 1: Bloquejat r1 Fil 2: Bloquejat r2

Com evitar el bloqueig a Java?

Tot i que no és totalment possible evitar la situació de bloqueig, podem seguir algunes mesures o indicacions per evitar-les:

  • Eviteu els panys imbricats - Heu d'evitar bloquejar diversos fils, aquest és el motiu principal d'una condició de bloqueig. Normalment passa quan es donen panys a diversos fils.

  • Eviteu els panys innecessaris - Els panys s’han de donar als fils importants. Donar bloquejos als fils innecessaris que provoquen la condició de bloqueig.



    longitud de la matriu al javascript
  • Utilitzant unió de fils - Normalment es produeix un bloqueig quan un fil espera que acabi l'altre. En aquest cas, podem utilitzar Thread.join amb el temps màxim que trigarà un fil.

Això ens porta al final d’aquest article, on hem après sobre el punt mort a Java i com evitar-lo. Espero que tingueu clar tot el que us ha estat compartit en aquest tutorial.

Si heu trobat rellevant aquest article sobre 'Deadlock In Java', consulteu el document una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món.

com retallar a Java

Estem aquí per ajudar-vos en cada pas del vostre viatge i oferir un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java. El curs està dissenyat per donar-vos un avantatge en la programació de Java i formar-vos tant per conceptes bàsics com avançats de Java juntament amb diversos M'agrada Hibernar & .

Si teniu alguna pregunta, no dubteu a fer-vos totes les vostres preguntes a la secció de comentaris de 'Deadlock In Java' i el nostre equip estarà encantat de respondre-us.