Hvordan håndtere låsing i Java?



Denne artikkelen dekker konseptet Deadlock In Java med et eksempel som viser hvordan trådene i et multitrådet program blir blokkert.

Java-programmeringsspråk støtter . Det innebærer flere tråder som kjører samtidig for multitasking. Men i visse tilfeller eller på grunn av visse mangler, finner trådene seg i ventetilstand for alltid. I denne artikkelen vil vi forstå fastlåst tilstand i og forskjellige måter å unngå det på. Følgende er temaene som er diskutert i denne bloggen:

Hva er Deadlock i Java?

Dødlås i Java er en tilstand der to eller flere tråder er blokkert for alltid, og venter på hverandre.





Dette skjer vanligvis når flere tråder trenger samme lås, men får dem i forskjellige ordrer. i Java lider av fastlåst situasjon på grunn av det synkroniserte nøkkelordet.

Det fører til at den utførende tråden blokkeres mens du venter på låsen eller skjermen som er knyttet til det angitte gjenstand .



Dødlås i Java - Edureka

Deadlock-eksempel

public class Eksempel {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 ('Tråd 1: Låst r1') prøv {Tråd.sove (100)} fangst (unntak e) {} synkronisert (r2) {System.out.println ('Tråd 1: Låst r2')}} } Tråd t2 = ny tråd () {offentlig tomromkjøring () {synkronisert (r1) {System.out.println ('Tråd 2: Låst r1') prøv {Thread.sleep (100)} fangst (unntak e) {} synkronisert (r2) {System.out.println ('Tråd 2: Låst r2')}}} t1.start () t2.start ()}}
 Produksjon: Tråd 1: Låst r1 Tråd 2: Låst r2

Hvordan unngå låsing i Java?

Selv om det ikke er fullt mulig å unngå fastlåste forhold, men vi kan følge visse tiltak eller pekere for å unngå dem:

hvordan sette klassesti i windows
  • Unngå nestede lås - Du må unngå å gi låser til flere tråder, dette er hovedårsaken til en fastlåst tilstand. Det skjer normalt når du gir låser til flere tråder.

  • Unngå unødvendige låser - Låsene skal gis til de viktige trådene. Gi lås til unødvendige tråder som forårsaker fastlåst tilstand.



  • Bruke trådforbindelse - En dødlås skjer vanligvis når den ene tråden venter på at den andre skal bli ferdig. I dette tilfellet kan vi bruke Thread.join med maksimal tid som en tråd vil ta.

Dette bringer oss til slutten av denne artikkelen hvor vi har lært om fastlåst tilstand i Java og hvordan vi kan unngå det. Jeg håper du er klar med alt som har blitt delt med deg i denne opplæringen.

lagringsklasser i c ++

Hvis du fant denne artikkelen om “Deadlock In Java” relevant, kan du sjekke ut et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden.

Vi er her for å hjelpe deg med hvert trinn på reisen og komme med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige som Dvalemodus & .

Hvis du kommer over noen spørsmål, er du velkommen til å stille alle spørsmålene dine i kommentarfeltet i 'Deadlock In Java', og teamet vårt svarer gjerne.