Introduktion til trådlivscyklus i Java

En tråd oplever adskillige faser i livscyklussen. Såsom en tråd kommer til verden, startede, løber, og efter det går væk. Det efterfølgende diagram forklarer trådens komplette livscyklus.

  • Trådkonstruktør producerer en tråd gennem en ny tilstand.
  • Opkald begynde metoden i tråd kan gøre det gennem den kørbare tilstand.
  • Trådplanlægning vedrørende Java kører den tråd, når processoren modtager.
  • Når tråd går til en blokeret tilstand, kører den endnu en gang, fordi den vender tilbage til en kørbar tilstand.
  • Hvis ventemetoden benævnes, som tråd ville gå til at vente på staten, vil den gå til kørbar tilstand kort efter, at den bliver underretning i hele Inform samt en meddelelse om alle metoder.
  • Tråden slutter, når køremetoden ophører.

Hvad er tråd?

En tråd defineres på operativsystemniveau. Og Java-sproget såvel som alle de andre sprog bruger, udnytter, den service, der leveres af operativsystemet. Fra udviklerens synspunkt er en tråd et sæt instruktioner, som vi skal skrive vores applikation og udføre på en bestemt måde. En applikation i sig selv kan være sammensat af flere tråde. Forskellige tråde kan udføres på samme tid. JVM (Java Virtual Machine) fungerer med flere tråde. Der er tråde til affaldssamlingen. Der er tråde til Just in Time Compiler og andre tekniske tråde.

Stater af tråd-livscyklus i Java

Nedenfor er de forskellige stater i trådlivscyklussen i Java:

1. Ny: En ny tråd starter deres livscyklus i den nye tilstand. Det fortsætter med at være i denne tilstand, før programmet starter tråden. Derudover er det kendt som en oprettet tråd.

2. Kørbar: Når en nyligt født tråd kan begynde, bliver tråden kørbar. En tråd med denne tilstand betragtes som at udføre deres proces.

3. Ventning: Lejlighedsvis går en trådovergang mod ventetiden omkring staten, selvom tråden venter på, at en anden tråd skal udføre en aktivitet. En tråd skifter kun tilbage til den kørbare tilstand, hvis en yderligere tråd viser den ventende tråd for at fortsætte med at udføre.

4. Tidsbestemt ventetid: En kørbar tråd kan nemt den bestemt tidsbestemte vente på, at staten får et specifikt tidsinterval. En tråd med denne tilstand skifter tilbage til den kørbare tilstand, når dette punktinterval udløber, eller hvis den begivenhed, den virkelig venter på, sker.

5. Termineret: En kørbar tråd kommer i den afsluttede tilstand, fordi den udfører sin opgave eller ellers afsluttes.

Sådan opretter du en tråd i Java?

Den mest basale måde at oprette en tråd i Java på er at bruge det Runnable Pattern. Du skal først oprette en forekomst af grænsefladen Runnable, hvilket er meget let; der er kun én metode til implementering. Derefter overfører vi dette tilfælde til konstruktøren af ​​trådklassen. Og så kalder vi bare start () -metoden for dette oprettede trådobjekt for at starte en ny tråd, der vil køre opgaven indpakket i vores Runnable-objekt.

Så først opretter vi et eksempel på en Runnable. Der er kun én metode til implementering, der kaldes metoden run (). Dette er Java 7-mønsteret for at gøre det, med et eksempel på en anonym klasse. Men vi kan også bruge et lambda-udtryk til at implementere en Runnable, da der kun er en metode i grænsefladen Runnable.

Lad os oprette tråde med meget enkle eksempler

Vi vil se, hvad der kan gå galt med en racetilstand, der er med usynkroniseret kode, der skal synkroniseres, og vi vil rette vores kode ved hjælp af synkronisering. Dette første eksempel er meget enkelt, det er meget grundlæggende. Det handler bare om at skabe en opgave.

Produktion:

En opgave er et eksempel på det Runnable-interface, lad os kalde det kørbart, og vi kan implementere dette interface ved hjælp af et lambda-udtryk. Denne opgave gives til en ny tråd og udføres i sammenhæng med denne tråd. Så vi skal bare udskrive navnet på den tråd, der kører denne opgave. Jeg kører i… Thread.currentThread () er en statisk metode i klassen Tråd, der returnerer tråden, der kører den aktuelle opgave. Og vi skal bare kalde getName () på dette trådobjekt for at returnere navnet på en tråd. Derefter efter at vi har oprettet en trådforekomst t = ny tråd. Ved at videregive denne kørsel som parameter. Så denne tråd vil køre dette stykke kode. Og for at lancere det. t.start () dette er start () -metoden, som vi har brug for at kalde. Hvad vi også kan gøre, er at give et eksplicit navn på denne tråd ved hjælp af t.setName ("Min tråd"). Og nu kan vi udføre denne kode. I stedet for metoden Opkaldsstart () kalder vi køremetoden (), og hvis vi kører denne kode, er problemet, at opgaven udføres korrekt, men den udføres ikke i den tråd, vi har oprettet. Det udføres i hovedtråden, som er den tråd, der udfører hovedmetoden. Så denne run () -metode skal ikke kaldes, hvis vi vil starte en ny tråd.

Produktion:

Metoder til tråd-livscyklus i Java

Metoderne beskrevet ved blot tråd er præsenteret i tabel.

DatatyperNavn på trådmetode
Snor

getName ()

Returner denne trådens navn

intfå prioritet ()

Returnerer trådens prioritet

booleaner i live()

Tester, om denne tråd stadig kører

ugyldigtilslutte()

Venter på, at denne tråd dør (afsluttes)

ugyldigløb()

Hver gang denne tråd blev bygget ved hjælp af et individuelt Runnable-objekt, kaldes det, som normalt Runnable-objektets køremetode; Ellers returnerer denne metode ikke så godt som. Hver gang trådklasse kan udvides såvel som, køres () -metoden overkøres under underklasse, kaldes en overkørt kørsel () -metode.

ugyldigsætnavn (strengnavn )

Ændrer navnet med denne tråd for at blive sammenligneligt med argumentnavnet.

statisk tomrum

søvn ( lang millis ) kaster afbrudt / undtagelse
Forårsager den nuværende udførende tråd til at hvile
den krævede mængde millisekunder.
statisk tomrumsøvn ( lang millis, int nanos ) kaster InterruptException

Det får den for tiden udførende tråd til at sove (ophør med udførelse) for den krævede mængde millisekunder såvel som den bestemte mængde nanosekunder.

ugyldigStart()

Udløser disse tråde for at starte udførelse; Java Virtual Machine kalder køremetoden for den tråd.

statisk tomrumudbytte()

Udløser det aktuelle trådobjekt til kort pause og tillader yderligere tråde at udføre.

statisk trådcurrentThread ()

Returnerer en omtale af det aktuelt udførte trådobjekt.

Konklusion

  • Enkelt at begynde at bruge tråde, ekstremt vanskelige at forstå.
  • Det er udfordrende at designe klasser, der indeholder metoder, der kan trådesikre.
  • Læs: JavaDoc for at hente klassen java.lang.Thread

Anbefalet artikel

Dette har været en guide til trådens livscyklus i Java. Her diskuterer vi hvad der er tråd? og forskellige stater i trådens livscyklus sammen med oprettelsen af ​​tråde i java. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Rammer i Java
  2. Stjernemønstre i Java
  3. Flet sortering i Java
  4. Bedste Java-kompilatorer
  5. Statisk metode i PHP

Kategori: