Johdanto Java-ketjujen elinkaareen

Lanka kokee lukuisia vaiheita elinkaaressa. Kuten lanka tulee maailmaan, käynnistyy, juoksee ja sen jälkeen katoaa. Seuraava kaavio selittää langan koko elinkaaren.

  • Langanrakentaja tuottaa säiettä uuden tilan kautta.
  • Soittamalla aloitusmenetelmässä Lanka-menetelmä voidaan saada se suoritettavan tilan läpi.
  • Javaa koskeva säikeensuunnittelija ajaa kyseisen säikeen, kun suoritin vastaanottaa.
  • Kun säie menisi estettyyn tilaan, se ajetaan jälleen, koska se palaa ajettavissa olevaan tilaan.
  • Jos odotusmenetelmäksi, jota kutsutaan ketjuksi, siirryttäisiin tilan odottamiseen, se siirtyisi ajettavissa olevaan tilaan pian sen jälkeen, kun se tulee ilmoitukseksi kaikkialla Informissä ja ilmoittaa kaikesta menetelmästä.
  • Lanka päättyy, kun ajo-menetelmä päättyy.

Mikä on säie?

Lanka määritetään käyttöjärjestelmän tasolla. Ja Java-kieli, samoin kuin kaikki muut kielet, käyttää, hyödyntää käyttöjärjestelmän tarjoamaa palvelua. Kehittäjän kannalta säie on joukko ohjeita, jotka aiomme kirjoittaa sovelluksemme ja suorittaa tietyllä tavalla. Itse sovellus voi koostua useista säikeistä. Eri ketjut voidaan suorittaa samanaikaisesti. JVM (Java Virtual Machine) toimii useilla säikeillä. Jätekeräykseen on lankoja. Just in Time -kääntäjälle on olemassa ketjuja ja muita teknisiä säikeitä.

Kierteiden elinkaaren tilat Java-tilassa

Alla on Java-ketjujen elinkaaren eri tilat:

1. Uusi: Uusi säie alkaa elinkaarensa uudessa tilassa. Se pysyy tässä tilassa ennen kuin ohjelma aloittaa säiettä. Lisäksi se tunnetaan luoduna säikeenä.

2. Suoritettava : Kun äskettäin syntynyt lanka voi alkaa, lanka muuttuu ajoavaksi. Tämän tilan säikeen katsotaan suorittavan prosessinsa.

3. Odotus: Toisinaan säikeen siirtyminen kohti tilan odottamista, vaikka säie odottaa uutta säiettä toiminnon suorittamiseksi. Lanka siirtyy palautuvaan ajettavuustilaan vain, jos lisälanka osoittaa odottavan langan jatkavan suoritusta.

4. Ajoitettu odottelu: Suoritettava lanka voi helposti tietyn ajankohdan odottaa, että tila saa tietyn ajanjakson. Lanka, jolla tämä tila siirtyy, palaa ajettavissa olevaan tilaan, kun kyseinen pisteväli loppuu tai jos tapahtuu tapahtuma, jota se todella odottaa.

5. Lopetettu: Käynnistettävä säie tulee päättyneeseen tilaan, koska se suorittaa tehtävänsä tai loppuu.

Kuinka luoda säie Java: seen?

Tyypillisin tapa luoda säie Java: seen on käyttää Suoritettavia kuvioita. Ensin on luotava Runnable-käyttöliittymän ilmentymä, joka on erittäin helppoa; on vain yksi menetelmä toteuttaa. Sitten siirrämme tämän instanssin ketjuluokan rakentajalle. Sitten kutsumme vain tämän luodun säieobjektin start () -menetelmää uuden langan käynnistämiseksi, joka suorittaa suoritettavan objektimme käärityn tehtävän.

Joten luomme ensin Runnable-esimerkki. Toteutettavaksi on vain yksi menetelmä, jota kutsutaan run () -menetelmäksi. Tämä on Java 7 -malli, jolla se tehdään, nimettömän luokan esiintymän kanssa. Mutta voimme käyttää myös lambda-lauseketta toteuttaaksesi Suoritettavan, koska Suoritettavassa käyttöliittymässä on vain yksi menetelmä.

Luokaamme langat hyvin yksinkertaisiin esimerkkeihin

Aiomme nähdä, mitä voi mennä pieleen kilpailuolosuhteissa, joissa synkronoimattomat koodit on synkronoitava, ja korjaamme koodimme synkronoinnin avulla. Tämä ensimmäinen esimerkki on hyvin yksinkertainen, se on hyvin yksinkertainen. Kyse on vain tehtävän luomisesta.

lähtö:

Tehtävä on Runnable-käyttöliittymän esimerkki, kutsutaan sitä suoritettavaksi, ja voimme toteuttaa tämän käyttöliittymän käyttämällä lambda-lauseketta. Tämä tehtävä annetaan uudelle säieelle ja suoritetaan tämän säikeen yhteydessä. Joten tulostamme juuri tämän tehtävän suorittavan langan nimen. Olen käynnissä… Thread.currentThread () on säieluokan staattinen menetelmä, joka palauttaa nykyistä tehtävää suorittavan säikeen. Ja meidän täytyy vain kutsua getName () tähän ketjuobjektiin palauttaaksesi langan nimen. Sitten sen jälkeen kun olemme luoneet ketju-ilmentymän, t = uusi säie. Tämän ajettavan parametrin välittäminen. Joten tämä säie suorittaa tämän koodin. Ja käynnistää sen. t.start () tämä on start () -menetelmä, joka meidän on kutsuttava. Voimme myös antaa nimen tälle säikeelle nimen t.setName (”Oma säie”) avulla. Ja nyt voimme suorittaa tämän koodin. Nyt kutsumme start () -menetelmän sijasta kutsumme run () -menetelmää, ja jos suoritamme tätä koodia, ongelmana on, että tehtävä suoritetaan oikein, mutta sitä ei suoriteta luomassa säikeessä. Se suoritetaan pääkierteessä, joka on päämenetelmää suorittava säie. Joten tätä run () -menetelmää ei pitäisi kutsua, jos haluamme käynnistää uuden säikeen.

lähtö:

Kierteiden elinkaaren menetelmät Java-ohjelmassa

Yksinkertaisesti säiettä kuvaavat menetelmät on esitetty taulukossa.

TyypitKiertomenetelmän nimet
jono

getName ()

Palauta tämän säikeen nimi

intsaada etusija ()

Palauttaa langan prioriteetin

booleanon elossa()

Testaa, onko tämä säie edelleen käynnissä

mitätönliittyä seuraan()

Odottaa, että tämä säie kuolee (päättyy)

mitätönjuosta()

Aina kun tämä säie rakennettiin käyttämällä yksittäistä Runnable -objektia, sen jälkeen, jota yleensä Runnable -objektin suoritustapa kutsutaan; tai muuten, tämä menetelmä ei ole yhtä hyvä kuin, palaa. Aina kun säieluokkaa voidaan laajentaa samoin kuin run () -menetelmää ohitetaan alaluokan aikana, niin kutsutaan over-ridden run () -menetelmää.

mitätönsetName ( merkkijonon nimi )

Muuttaa nimeä tällä säikeellä tullakseen verrattavissa argumentinimeen.

staattinen tyhjä

uni ( pitkä millis ) heittää keskeytettyä / poikkeusta
Saa nykyisen säikeen lepäämään
vaadittu määrä millisekuntia.
staattinen tyhjäuni ( pitkä millis, int nanos ) heittää InterruptedException

Se saa nykyisen suoriutuneen säieen nukkumaan (lakkaa toteuttamasta) vaaditulle määrälle millisekuntia samoin kuin tietylle määrälle nanosekuntia.

mitätönalkaa()

Käynnistää nämä ketjut suorituksen aloittamiseksi; Java-virtuaalikone kutsuu kyseisen säikeen suoritusmenetelmää.

staattinen tyhjäsaanto ()

Käynnistää nykyisen säieobjektin väliaikaisesti keskeyttääksesi ja salliaksesi lisäketjujen suorittamisen.

staattinen säiecurrentThread ()

Palauttaa maininnan tällä hetkellä suorittavasta säieobjektista.

johtopäätös

  • Lankojen käytön aloittaminen on helppoa, erittäin vaikea ymmärtää.
  • Niiden luokkien suunnittelu, jotka sisältävät ketjuvarmat menetelmät, on haastava.
  • Lue: JavaDoc saadaksesi luokan java.lang.Thread

Suositeltava artikkeli

Tämä on ollut opas ketjun elinkaareen Java-ohjelmassa. Keskustelemme tässä mitä säie on? ja säikeiden elinkaaren eri tilat sekä lankojen luominen Java-kielelle. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Kehykset Java
  2. Tähtikuviot Java
  3. Yhdistä Lajittele Java
  4. Parhaat Java-kääntäjät
  5. Staattinen menetelmä PHP: ssä