Kuidas Java-s ummikseisus käituda?



Selles artiklis käsitletakse Java-i ummistuse mõistet koos näitega, mis näitab, kuidas mitmelõimelise programmi niidid blokeeritakse.

Java programmeerimiskeel toetab . See hõlmab mitut lõime, mis töötavad samaaegselt mitme ülesande jaoks. Kuid teatud juhtudel või teatud puuduste tõttu satuvad niidid igavesti ooteseisundisse. Selles artiklis mõistame ummikseisundit aastal ja erinevaid viise selle vältimiseks. Selles blogis käsitletakse järgmisi teemasid:

c c # c ++

Mis on Java ummikseis?

Java tupik on seisund, kus kaks või enam lõime blokeeritakse igavesti, oodates üksteist.





See juhtub tavaliselt siis, kui mitu lõime vajavad samu lukke, kuid hankivad need erinevas järjestuses. Java-s kannatab sünkroonitud märksõna tõttu ummikseis.

See põhjustab käivitava lõime blokeerimise, kui oodatakse määratud lukuga või monitori objekt .



Ummik Java-s - Edureka

Ummiku näide

public class Näide {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 ('Lõng 1: Lukustatud r1') proovige {Thread.sleep (100)} püüdmist (erand e) {} sünkroonitud (r2) {System.out.println ('Lõng 1: Lukustatud r2')}}} } Thread t2 = new Thread () {public void run () {synchronized (r1) {System.out.println ('Teema 2: Lukustatud r1') proovige {Thread.sleep (100)} püüdmist (erand e) {} sünkroonitud (r2) {System.out.println ('Teema 2: Lukustatud r2')}}}} t1.start () t2.start ()}}
 Väljund: 1. lõim: lukustatud r1 2. lõng: lukustatud r2

Kuidas vältida Java ummikseisu?

Kuigi ummikseisundit pole täiesti võimalik vältida, kuid nende vältimiseks võime järgida teatavaid meetmeid või näpunäiteid:

  • Vältige pesastatud lukke - Te peate vältima lukkude andmist mitmele lõimele, see on ummikseisundi peamine põhjus. Tavaliselt juhtub see siis, kui annate lukud mitmele lõimele.

  • Vältige tarbetuid lukke - Olulistele niitidele tuleks anda lukud. Lukustuse andmine mittevajalikele niitidele, mis põhjustavad ummikseisundi.



  • Teemaühenduse kasutamine - Ummik juhtub tavaliselt siis, kui üks lõng ootab teise lõpetamist. Sel juhul saame kasutada teemat Thread.join maksimaalse ajani, mis niidil kulub.

See viib meid selle artikli lõppu, kus oleme õppinud tundma Java ummikseisu ja kuidas seda vältida. Loodan, et teil on selge kõik see, mida teiega selles õpetuses on jagatud.

Kui leiate, et see artikkel on Java-i ummikseisus asjakohane, vaadake järgmist usaldusväärne veebiõppeettevõte, mille võrgustik sisaldab üle 250 000 rahuloleva õppija, levis üle kogu maailma.

Oleme siin, et aidata teil igal sammul oma teekonnal ja koostada õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java-programmeerimises alustamine ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute jaoks koos erinevate mõistetega meeldib Talveunerežiim & .

Kui teil tekib küsimusi, küsige julgelt kõiki oma küsimusi jaotise “Deadlock In Java” kommentaaride osas ja meie meeskond vastab sellele hea meelega.