Cum să gestionați impasul în Java?



Acest articol acoperă conceptul de blocare în Java cu un exemplu care arată cum se blochează firele dintr-un program cu mai multe fire.

Suport pentru limbajul de programare Java . Acesta implică mai multe fire care rulează simultan pentru multitasking. Dar, în anumite cazuri sau datorită anumitor neajunsuri, firele se găsesc în starea de așteptare pentru totdeauna. În acest articol, vom înțelege condiția de blocare în și diferite moduri de a o evita. Următoarele sunt subiectele discutate în acest blog:

Ce este Deadlock în Java?

Impasul în Java este o condiție în care două sau mai multe fire sunt blocate pentru totdeauna, așteptându-se unul pe celălalt.





Acest lucru se întâmplă de obicei atunci când mai multe fire au nevoie de aceleași blocări, dar le obțin în ordine diferite. în Java suferă de situația de blocaj din cauza cuvântului cheie sincronizat.

ce este interfața marker în java

Aceasta determină blocarea firului de execuție în timp ce așteptați blocarea sau monitorul, asociat cu cel specificat obiect .



Impas în Java - Edureka

Exemplu de impas

public class Exemplu {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Thread t1 = new Thread () {public void run () {synchronized (r1) {System. out.println ('Fir 1: Blocat r1') încercați {Thread.sleep (100)} catch (excepție e) {} sincronizat (r2) {System.out.println ('Fir 1: Blocat r2')}}} } Thread t2 = thread nou () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') try {Thread.sleep (100)} catch (exception e) {} sincronizat (r2) {System.out.println ('Fir 2: Blocat r2')}}}} t1.start () t2.start ()}}
 Ieșire: Fir 1: Blocat r1 Fir 2: Blocat r2

Cum să evitați impasul în Java?

Deși nu este complet posibil să evităm starea de blocare, dar putem urma anumite măsuri sau indicații pentru a le evita:

  • Evitați încuietorile imbricate - Trebuie să evitați blocarea mai multor fire, acesta este motivul principal pentru o condiție de blocare. În mod normal, se întâmplă atunci când dați blocări mai multor fire.

  • Evitați încuietorile inutile - Încuietorile trebuie acordate firelor importante. Acordarea de blocări firelor inutile care cauzează starea de blocare.



    mergeți în c ++
  • Folosirea Thread Join - Un blocaj se întâmplă de obicei atunci când un fir îl așteaptă pe celălalt să se termine. În acest caz, putem utiliza Thread.join cu un timp maxim pe care îl va dura un thread.

Acest lucru ne duce la sfârșitul acestui articol, unde am aflat despre impasul din Java și despre cum să-l evităm. Sper că ești clar cu tot ce ți-a fost împărtășit în acest tutorial.

Dacă ați găsit relevant acest articol despre „Blocaj în Java”, consultați o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul.

ce este indexof în javascript

Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și pentru a veni cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java. Cursul este conceput pentru a vă oferi un început important în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse ca Hibernează & .

Dacă întâmpinați întrebări, nu ezitați să vă adresați toate întrebările în secțiunea de comentarii din „Blocaj în Java” și echipa noastră va fi bucuroasă să vă răspundă.