Forskjell mellom søvn og vent i Java

Nøkkelforskjell - sove mot vente i Java
 

Søvn og vent er to metoder som brukes til multithreading i Java. Søvnmetoden tilhører tråkklasse mens ventemetoden er fra objektklassen. De nøkkelforskjell mellom søvn og vente i Java er det, den søvn brukes til å suspendere utførelsen av gjeldende tråd for angitt antall millisekunder mens ventemetoden brukes til å få den gjeldende tråden til å vente til en annen tråd påkaller varslingen eller varsleAlle metoden for objektet.

En tråd er den minste prosesseringsenheten i operativsystemet. Det er en enkelt sekvensiell strøm av kontroll i et program. Tråder er lette. Multithreading er mekanismen for å kjøre flere tråder samtidig. Programmeringsspråk som Java støtter multithreading. Multithreading har fordeler fordi det tillater å kjøre flere tråder samtidig og tråder er uavhengige av hverandre. Det finnes metoder i Java som kan brukes til multithreading. To av dem er søvn og vente.

INNHOLD

1. Oversikt og nøkkelforskjell
2. Hva er søvn i Java
3. Hva er ventetiden i Java
4. Likheter Mellom søvn og vent i Java
5. Side ved side-sammenligning - sov vs venter i Java i tabellform
6. Sammendrag

Hva er søvn i Java?

Det er flere prosesser som kjører i et operativsystem. En prosess er et program i utførelse. Hver prosess kan ha flere tråder, og det skjer en kontekstveksling mellom disse tråder. I Java er det to måter å lage en tråd på. Det er ved å utvide trådklassen eller ved å implementere Runnable-grensesnittet. Thread-klassen har konstruktører og metoder for å lage og utføre operasjoner på en tråd. Gruppen Thread strekker Objekt klasse og implementerer Runnable grensesnitt. Runnable-grensesnittet skal implementeres av enhver klasse hvis forekomster er ment å bli utført av en tråd. Når tråden kjøres, er koden som skal utføres skrevet inn i løpemetoden. Tråden som skal løpe er valgt av trådplanleggeren. Bare en tråd går i en enkelt prosess.

En tråd går gjennom flere faser. Etter å ha opprettet et objekt av trådklasse, kan programmereren påkalle startmetoden. Før man påberoper seg denne metoden, er det sagt at tråden er i den nye staten. Trådplanleggeren velger en tråd som skal kjøres. Hvis tråden ennå ikke er valgt av trådplanleggeren, men hvis startmetoden er påkalt, er tråden i runnbar tilstand. Etter at trådplanleggeren har valgt tråden som skal utføres, overgår den til løpestatus. Hvis tråden er i live, men ikke i øyeblikket kvalifisert til å kjøre, er den i ikke-runnbar eller blokkert tilstand. Etter ferdigstillelse av løpemetoden går tråden til den avsluttede tilstanden. Det er de viktigste faser av trådens livssyklus.

Det finnes ulike metoder i trådklassen for å utføre forskjellige oppgaver. Søvnmetoden brukes til å sove metoden i en bestemt tid. Syntaxen for søvnmetoden er offentlig ugyldig søvn (lange millisekunder) kaster AvbruddException. Det fører til at gjeldende tråd utføres for å stoppe kjøring midlertidig i et spesifisert antall millisekunder. Hvis en annen tråd forstyrrer gjeldende tråd, blir den avbrudde statusen for gjeldende tråd slettet når dette unntaket kastes.

Figur 01: Java Program med søvn Metode

I henhold til det ovennevnte programmet inneholder kjøremetoden kode som skal utføres. I hovedprogrammet opprettes to objekter av ExampleThread1, og startmetodene påberopes på dem. Det vil tillate å kjøre koden inne i løpemetoden. Bare en tråd utføres av gangen. Med tråden. sove (1000); vil tillate den første tråden å avslutte utførelsen i 1000 millisekunder. Når en tråd sover, trekker trådplanleggeren opp den andre tråden.

Hva er ventetiden i Java?

Flere tråder kan få tilgang til en delt ressurs. Det kan forårsake å generere feil utgang. Trådsynkronisering kan brukes til å lage bare én tråd for å få tilgang til den delte ressursen. Anta en situasjon som følger. Hvis det er to tråder som t1 og t2, begynner t1 å lagre verdier til en tekstfil med navnet Text1.txt. Disse verdiene vil bli brukt til en annen beregning når t1 returnerer. Hvis t2 starter før t1 returnerer, kan t2 endre verdiene lagret av t1. Dette kan føre til at t1 gir feil utgang. Ved hjelp av synkronisering, når t1 begynner å bruke Text1.txt-filen, kan filen bli låst, så den er bare tilgjengelig ved t1. T2 kan ikke endre det før t1 slipper lås for å få tilgang til tekstfilen. Når oppgaven er fullført, kan t1 løsne låsen. Låsen er også kjent som skjermen.

Trådsynkronisering kan oppnås ved inter-thread-kommunikasjon. En kritisk seksjon er et kodesegment som åpner de delte ressursene. I inter-thread-kommunikasjonen blir en tråd stoppet i sin kritiske seksjon, og en annen tråd får inn i samme kritiske seksjon som skal utføres. Det er implementert ved å vente, varsle og varsle alle metoder. De tilhører Object-klassen. Ventemetoden brukes til å la den nåværende tråden frigjøre låsingen og vente til en annen tråd påkaller meldingen eller notifyAll-metoden for objektet. Informasjonsmetoden brukes til å våkne opp en enkelt tråd som venter på låsen. NotifyAll våkner alle tråder som venter på låsen.

Figur 02: Kalkulatorklasse

Figur 03: Hovedmetode

Kalkulator-klassen utvider tråden. Den synkroniserte blokk er inne i løpemetoden. For loop og notify metoden er inne i den synkroniserte blokk. I hovedmetoden er en forekomst av en tråd opprettet og startmetoden kalt den forekomsten. Hovedmetoden vil vente til tråden gir et varsel. Når programmet utføres, venter hovedmetoden til hele utførelsen av løpemetoden og venter på varslingsmetoden. Når meldingsmetoden er kalt, slutter hovedmetoden å vente og begynner å utføre resten av koden. Hoved venter til kalkulator-tråden er fullført. Endelig er resultatet av summen skrevet ut.

Hvis det ikke er en synkronisert blokk, og hvis hovedmetoden har en kode som nedenfor, vil den gi utgangen som null fordi den ikke venter på den andre tråden for å fullføre.

Kalkulator t1 = ny kalkulator ();

 t1. start ();

System.out.println (t1.sum);

Hva er likheten mellom søvn og vent i Java?

  • Både søvn og vent er metoder som kan brukes når du implementerer multithreading i Java

Hva er forskjellen mellom søvn og vent i Java?

sov mot venter i Java

Søvemetoden gjør at gjeldende tråd suspenderer kjøringen i det angitte antallet millisekunder, underlagt nøyaktigheten og nøyaktigheten til systemtimere og planleggere. Ventemetoden gjør at den gjeldende tråden venter til en annen tråd påkaller meldingen eller notiserAlle metoden for objektet.
 Forening med Lås
Søvemetoden frigir ikke låsen på et objekt under synkronisering. Ventemetoden frigir låsen under synkronisering.
Fremgangsmåte for utførelse
Søvnmetoden utføres på gjeldende tråd. Ventemetoden kalles på objektet.
 Assosiert klasse
Søvn er en metode for trådklasse. Ventetiden er en metode for Objeklasse.
Gjennomføring
Søvnprosessen er fullført etter at angitt tid er over. Ventemetoden avbrytes ved å ringe meldingen eller varsle alle metoder.

Sammendrag - sove mot vente i Java

Det er flere prosesser som kjører på operativsystemet. Hver prosess kan ha flere tråder. En tråd er den minste prosesseringsenheten i et operativsystem. Java programmeringsspråk støtter multithreading. Det gjør det mulig å kjøre flere tråder samtidig. Søvnen og ventetiden er to metoder som kan brukes når man implementerer multi-threading. Forskjellen mellom søvn og vent i Java er at søvnen brukes til å suspendere utførelsen av gjeldende tråd for det angitte antallet millisekunder mens ventemetoden brukes til å få den gjeldende tråden til å vente til en annen tråd påkaller å varsle eller varsle metode for objektet.

Henvisning:

1. "Inter-thread Communication in Java - Javatpoint.". JavaTPoint. Tilgjengelig her
2. Inter-tråd Kommunikasjon i Java Multithreading | Core Java Tutorial | Studytonight. Tilgjengelig her