Introduksjon til trådlivssyklus i Java

En tråd opplever mange faser i livssyklusen. Slik som en tråd kommer til verden, startet, løper, og etter det går bort. Det påfølgende diagrammet forklarer trådenes komplette livssyklus.

  • Trådkonstruktør produserer en tråd gjennom en ny tilstand.
  • Ringe begynner metoden i tråd kan gjøre det gjennom kjørbar tilstand.
  • Trådplanlegging angående Java kjører den tråden når prosessoren mottar.
  • Når tråden vil gå til en blokkert tilstand, vil den løpe igjen fordi den kommer tilbake til en kjørbar tilstand.
  • Hvis ventemetoden blir referert til som tråd vil gå til å vente på staten, vil den gå til kjørbar tilstand kort tid etter at den blir varsling i hele Informasjonen, samt en varslende metode.
  • Tråden slutter når kjøremetoden avsluttes.

Hva er tråd?

En tråd er definert på operativsystemnivå. Og Java-språket, så vel som alle andre språk, bruker, utnytter, tjenesten som gis av operativsystemet. Fra utviklerens synspunkt er en tråd et sett med instruksjoner som vi skal skrive applikasjonen vår, og utføre på en viss måte. En applikasjon i seg selv kan være sammensatt av flere tråder. Ulike tråder kan utføres samtidig. JVM (Java Virtual Machine) fungerer med flere tråder. Det er tråder for søppelsamlingen. Det er tråder for Just in Time Compiler og andre tekniske tråder.

States of Thread Life Cycle in Java

Nedenfor er de forskjellige States of the Thread Life Cycle i Java:

1. Ny: En ny tråd starter deres livssyklus i den nye tilstanden. Det fortsetter å være i denne tilstanden før programmet begynner tråden. I tillegg er det kjent som en opprettet tråd.

2. Runnable: Etter at en nylig født tråd kan begynne, blir tråden kjørbar. En tråd med denne tilstanden vurderes å utføre prosessen sin.

3. Venter: Noen ganger går en trådovergang mot ventetiden rundt staten, selv om tråden venter på at en annen tråd skal utføre en aktivitet. En tråd overgår tilbake til kjørbar tilstand bare hvis en ekstra tråd indikerer den ventende tråden for å fortsette å utføre.

4. Tidsbestemt venting: En kjørbar tråd kan enkelt klemme den bestemte tidsbestemte venter på at staten får et bestemt tidsintervall. En tråd med denne tilstanden overgår tilbake til den kjørbare tilstanden når punktintervallet utløper, eller hvis hendelsen den virkelig venter på skjer.

5. Avsluttet: En kjørbar tråd kommer i den avsluttede tilstanden fordi den fullfører oppgaven sin ellers avsluttes.

Hvordan lage en tråd i Java?

Den mest grunnleggende måten å lage en tråd i Java på er å bruke det kjørbare mønsteret. Du må først lage en forekomst av Runnable-grensesnittet, som er veldig enkelt; det er bare en metode å implementere. Så gir vi denne forekomsten til konstruktøren av tråden. Og så kaller vi bare start () -metoden til dette trådobjektet som er opprettet, for å starte en ny tråd som skal kjøre oppgaven pakket inn i vårt kjørbare objekt.

Så først lager vi et eksempel på en Runnable. Det er bare en metode å implementere, som kalles run () -metoden. Dette er Java 7-mønsteret for å gjøre det, med en forekomst av en anonym klasse. Men vi kan også bruke et lambda-uttrykk for å implementere et Runnable siden det bare er en metode i Runnable-grensesnittet.

La oss lage tråder på veldig enkle eksempler

Vi kommer til å se hva som kan gå galt med en løpstilstand som er med usynkronisert kode som skal synkroniseres, og vi skal fikse koden vår ved hjelp av synkronisering. Dette første eksemplet er veldig enkelt, det er veldig grunnleggende. Det handler bare om å lage en oppgave.

Produksjon:

En oppgave er et eksempel på det kjørbare grensesnittet, la oss kalle det kjørbart, og vi kan implementere dette grensesnittet ved hjelp av et lambda-uttrykk. Denne oppgaven blir gitt til en ny tråd og utført i sammenheng med denne tråden. Så vi skal bare skrive ut navnet på tråden som kjører denne oppgaven. Jeg kjører i … Thread.currentThread () er en statisk metode i tråden klassen som returnerer tråden som kjører den gjeldende oppgaven. Og vi må bare ringe getName () på dette trådobjektet for å returnere navnet på en tråd. Deretter etter at vi oppretter en trådforekomst t = ny tråd. Å sende dette kjørbare som parameter. Så denne tråden kommer til å utføre dette koden. Og å lansere den. t.start () dette er start () -metoden som vi trenger å kalle. Det vi også kan gjøre er å gi et eksplisitt navn på denne tråden ved å bruke t.setName (“Min tråd”). Og nå kan vi utføre denne koden. Nå i stedet for metoden for å starte samtalen (), kaller vi kjøreturen () -metoden, og hvis vi kjører denne koden, er problemet at oppgaven er riktig utført, men den utføres ikke i tråden vi har opprettet. Det utføres i hovedtråden som er tråden som utfører hovedmetoden. Så denne run () -metoden skal ikke kalles hvis vi ønsker å lansere en ny tråd.

Produksjon:

Metoder for tråd-livssyklus i Java

Metodene beskrevet av ganske enkelt tråd er presentert i tabell.

DatatyperTrådmetodenavn
string

getName ()

Returner denne trådens navn

intprioriter ()

Returnerer trådenes prioritet

booleaner i live()

Tester om denne tråden fortsatt kjører

tomrombli med()

Venter på at denne tråden skal dø (avsluttes)

tomromløpe()

Hver gang denne tråden ble bygget ved hjelp av et individuelt kjørbart objekt, kalles det som vanligvis kjørbare objektets kjøremetode; Ellers vil denne metoden ikke komme så godt som tilbake. Hver gang trådklasse kan utvides så vel som, kjøres () -metoden blir overkjørt under underklasse, kalles en overkjørt kjøremetode () -metode.

tomromsetName (strengnavn )

Endrer navnet med denne tråden for å bli sammenlignbar med argumentnavnet.

statisk tomrom

søvn ( lang millis ) kaster avbrutt / unntak
Gjør at tråden som nå fungerer, hviler på
den nødvendige mengden millisekunder.
statisk tomromsøvn ( lang millis, int nanos ) kaster InterruptException

Det får den nåværende tråden til å sove (slutte å utføre) for den nødvendige mengden millisekunder, så vel som den spesielle mengden nanosekunder.

tomromstart()

Utløser disse trådene for å starte utførelsen; Java Virtual Machine kaller kjøremetoden for den tråden.

statisk tomromutbytte()

Utløser det nåværende trådobjektet for å pause kort og la ekstra tråder kjøres.

statisk trådcurrentThread ()

Returnerer en omtale av det nåværende utførende trådobjektet.

Konklusjon

  • Enkelt å begynne å bruke tråder, ekstremt vanskelig å fatte.
  • Det er utfordrende å designe klasser som inneholder metoder som kan trådsikre.
  • Les: JavaDoc for å få klassen java.lang.Thread

Anbefalt artikkel

Dette har vært en guide til trådens livssyklus i Java. Her diskuterer vi hva som er tråd? og forskjellige stater i trådens livssyklus sammen med opprettelsen av tråder i java. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Rammer i Java
  2. Stjernemønstre i Java
  3. Merge Sort i Java
  4. Beste Java-kompilatorer
  5. Statisk metode i PHP