Kuinka käsitellä umpikujaa Java-ohjelmassa?



Tässä artikkelissa käsitellään Deadlock In Java -käsitettä esimerkillä, joka näyttää kuinka monisäikeisen ohjelman ketjut estetään.

Java-ohjelmointikieli tukee . Siihen kuuluu useita ketjuja, jotka kulkevat samanaikaisesti monitoimityötä varten. Mutta tietyissä tapauksissa tai tiettyjen puutteiden takia langat joutuvat odottamaan ikuisesti. Tässä artikkelissa ymmärretään umpikujan tila ja erilaisia ​​tapoja välttää se. Tässä blogissa käsitellään seuraavia aiheita:

Mikä on Java: n umpikuja?

Javan umpikuja on tila, jossa kaksi tai useampi säike on estetty ikuisesti odottaen toisiaan.





lopulta lopullinen ja viimeistellä Java

Tämä tapahtuu yleensä, kun useat säikeet tarvitsevat samat lukot, mutta hankkivat ne eri järjestyksissä. Java kärsi umpikujasta synkronoidun avainsanan takia.

Se aiheuttaa suorittavan säikeen estämisen odottaessaan määritettyyn lukitusta tai näyttöä esine .



Umpikuja Java - Edureka

Umpikuja-esimerkki

public class Esimerkki {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 ('Kierre 1: lukittu r1'), kokeile {Thread.sleep (100)} -sieppaus (poikkeus e) {} synkronoitu (r2) {System.out.println ('Kierre 1: Lukittu r2')}} } Lanka t2 = uusi lanka () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') try {Thread.sleep (100)} catch (poikkeus e) {} synkronoitu (r2) {System.out.println ('Kierre 2: Lukittu r2')}}}} t1.start () t2.start ()}}
 Tuotos: Kierre 1: Lukittu r1 Kierre 2: Lukittu r2

Kuinka välttää umpikuja Java?

Vaikka umpikujasta ei ole täysin mahdollista välttää, mutta voimme välttää tiettyjä toimenpiteitä tai ohjeita niiden välttämiseksi:

  • Vältä sisäkkäisiä lukkoja - Sinun on vältettävä lukkojen antamista useille säikeille, tämä on tärkein syy umpikujaan. Se tapahtuu yleensä, kun annat lukot useille säikeille.

  • Vältä tarpeettomia lukkoja - Lukot tulee antaa tärkeille kierteille. Lukittuminen turhiin säikeisiin, jotka aiheuttavat umpikujan.



  • Thread Join -sovelluksen käyttö - umpikuja tapahtuu yleensä, kun yksi lanka odottaa toisen päättymistä. Tässä tapauksessa voimme käyttää Thread.join -ohjelmaa enimmäisajan kanssa, jonka ketju vie.

Tämä vie meidät tämän artikkelin loppuun, jossa olemme oppineet Java-umpikujasta ja miten sitä voidaan välttää. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

ero luokan ja käyttöliittymän välillä

Jos löysit tämän artikkelin ”Java-umpikujasta”, ole hyvä, tutustu luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinneenä ympäri maailmaa.

Autamme sinua matkasi jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on tarkoitettu opiskelijoille ja ammattilaisille, jotka haluavat olla Java-kehittäjiä. Kurssi on suunniteltu antamaan sinulle etumatka Java-ohjelmointiin ja kouluttamaan sekä ydin- että edistyneitä Java-käsitteitä sekä erilaisia Kuten Lepotila & .

Jos kohtaat kysymyksiä, kysy rohkeasti 'Deadlock In Java' -kommenttiosasta, ja tiimimme vastaa mielellään.