Johdanto Java-haastattelua koskevat kysymykset ja vastaukset monisäikeisestä

Ennen kuin siirrymme Java-haastattelukysymyksiin monisäikeisestä, keskustellaan jotain tietyistä moniajoista koskevista tosiasioista.

# 1 - Joten meidän pitäisi ensin tietää, mikä on säie?

Se on pienin yksikkö tietyn teoksen käsittelyyn, jota kutsutaan säikeeksi. Se on luonteeltaan kevyt, joten sitä on helppo käyttää. Nyt mieleemme tulee, että miksi meidän pitäisi tarvita sitä, monisäikeisyyttä käytetään monitehtävien aikaansaamiseen. Monitasoinen suorittaminen voitaisiin saavuttaa myös toisella tavalla, ja se tunnetaan nimellä Moniprosessointi.

Monisäikeisyys on kuitenkin suositumpi ja sitä on tehokasta käyttää moniprosessoinnin kautta, koska säieillä on ominaisuuksia, että se käyttää jaettua muistialuetta, kun taas moniprosessien yhteydessä se kuluttaa paljon muistia ja muita resursseja, mikä ei ole tehokasta.

Joten prosessia, jolla suoritetaan useita ketjuja samanaikaisesti jonkin työn suorittamiseksi, kutsutaan monisäikeiseksi.

Joitakin monisäikeisen käytön etuja:

  • Kierteet toimivat itsenäisesti, joten se on riippumaton muista järjestelmissä menevistä toiminnoista ja siten on mahdollista suorittaa useita toimintoja samanaikaisesti.
  • Aika kuluu vähemmän käyttämällä monisäikeilyä, koska monet toiminnot voidaan suorittaa samanaikaisesti.
  • Viestiketjut ovat riippumattomia, kuten jo keskusteltiin, joten yksittäisessä säikeessä tapahtuva poikkeus ei häiritse muiden ketjujen toimintaa.
  • Kahden langan välisen viestinnän kustannukset ovat alhaiset.

Voimme saavuttaa moniajoituksen kahdella tavalla:

  • Prosessipohjainen moniajo (moniprosessointi)
  • Lankapohjainen moniajo (monisäikeinen)

HUOMAUTUS: Keskustellessamme monisäikeisestä keskitymme siten säiepohjaiseen moniajoon.

Langan elinkaari:

  • Uusi
  • runnable
  • Running
  • Ei suoritettava (estetty)
  • päättynyt

HUOMAUTUS: Tutustu alla olevaan kuvaan huolellisesti ja ymmärrystäsi varten.

# 2 - Kuinka langat luodaan?

Nyt tämä on tärkein ja ensimmäinen kohta, jolla voimme luoda säiettä. Alla on kaksi tapaa, joilla säikeitä voidaan luoda, joista keskustellaan alla:

  • Laajentamalla säieluokkaa
  • Toteuttamalla Suoritettava käyttöliittymä

HUOMAUTUS:

Kun uusi säie luotiin, suoritetaan seuraavat tehtävät:

  1. Uudessa puhelupinossa luodaan ketju.
  2. Viestiketju muuttaa tilansa New: sta Runnable.
  3. Kun säie aloitetaan, se löytää run () -menetelmän ja sitten suorittaa.

Esimerkki:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

Esimerkki:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

HUOMAUTUS: Muista ero edellä mainituissa kahdessa esimerkissä. Kahden yllä mainitun esimerkin pääasiallinen ero on se, että jos emme laajenna ketjua, yritämme luoda säiettä toteuttamalla suoritettavan käyttöliittymän ja luokittelemalla aloitus () -menetelmän aloittamaan säiettä, niin juoksua ei luoda uuteen puhelupinoon. koska sitä ei tunnisteta ketjuksi.

Joten jotta se tunnistettaisiin säikeeksi, meidän on läpäistävä luokan ilmentymä, jossa olemme toteuttaneet ajoitetun käyttöliittymän argumenttina ketjuluokan rakentajalle, ja sitten meidän on kutsuttava start () -menetelmää.

Aikataulu ketjussa:

Koska he kaikki tietävät, että aikataulu tarkoittaa suunnitella tehtävä tiettyyn aikaan.

Ketjujen ajoitus on samanlainen mekanismi tietyn säikeen ajoittamiseksi, joka ylläpitää joitain protokollia. Kierteiden ajoittaminen toimii Java: lla kahdella eri tavalla.

  • Ennaltaehkäisevä aikataulu
  • Ajan viipalointi.

Ennakkoaikataulu:

JMV päättää korkeimman prioriteetin tehtävän ja aloittaa suorituksen, kunnes se siirtyy odotus- tai kuollutilaan tai korkeamman prioriteetin tehtävä syntyy.

Ajan viipalointi:

JVM aloittaa tietyn säikeen suorittamisen tiettynä ajanjaksona ja siirrä sitten sama säie pooliin ja valitse toinen säie prioriteettien ja muiden tekijöiden perusteella. Tämä prosessi jatkuu, kunnes kaikki säikeet lopettavat prosessinsa.

Nyt, jos etsit työtä, joka liittyy Java-monisäikeisiin, sinun on varauduttava vuoden 2018 Java-haastattelukysymyksiin monisäikeisestä. On totta, että jokainen haastattelu on erilainen työprofiilien mukaan. Täällä olemme laatineet tärkeät Java-haastattelua koskevat kysymykset ja vastaukset monisäikeisestä, jotka auttavat sinua menestymään haastattelussa.

Tässä 2018 Java -haastattelukysymystä monisäikeisestä artikkelissa esittelemme 10 tärkeintä ja usein kysyttyä Java-haastattelukysymystä monisäikeisestä. Nämä haastattelukysymykset on jaettu kahteen osaan seuraavasti:

Osa 1 - Java-haastattelukysymykset monisäikeisestä (perus)

Tämä ensimmäinen osa kattaa Java-haastattelun peruskysymykset ja vastaukset monisäikeisestä.

Q1. Ero prosessin ja säikeen välillä?

Vastaus:
Prosessi on ohjelma tai sovellus, kun taas ketju on yksi tehtävä, joka suoritetaan prosessin sisällä. Lanka on kevyt, kun taas prosessi on raskasta. Lanka vaatii vähemmän, kun taas prosessi vaatii enemmän resursseja, joten sitä kutsutaan luonteeltaan voimakkaasti painoiseksi.

Q2. Erottele käyttäjän ketju ja daemon-ketju?

Vastaus:
Javaan luotu ketju kutsutaan käyttäjän ketjuksi. Daemon-ketju kulkee aina taustalla ja sen koko elinkaari riippuu päälangasta. Taustalla juokseva demonilanka ei estä JVM: ää lopettamasta sitä. Daemon-langasta luotu lastenkieli on myös daemon-lanka.

Siirrytään seuraavaan Java-haastatteluun liittyviin kysymyksiin monisäikeisestä.

Q3. Erilainen tapa luoda säie Java: seen?

Vastaus:
Java-ketjut voidaan luoda kahdella tavalla:

  • Laajentamalla lankaluokkaa.
  • Toteuttamalla suoritettava käyttöliittymä.

Q4. Mikä on säikeen elinkaari?

Vastaus:
Tämä on haastattelussa kysytty yleisimpiä Java-haastattelukysymyksiä monisäikeisestä. Seuraavat ovat ketjun elinkaari:

  • Uusi
  • Runnable.
  • Käynnissä.
  • Tukossa.
  • Lopetetaan.

Q5. Mitä tapahtuu, jos kutsumme ketjuluokan run () -menetelmää?

Vastaus:
Suorittamalla suorittaminen run () -menetelmälle kääntää ja suorittaa ohjelman onnistuneesti, mutta samaa ohjelmaa ei käsitellä kuin säiettä, koska uutta puhelun pinoa ei luoda ja ohjelma aloittaa suorituksen samassa puhelupinossa, jossa pää toimii.

Luodaan ketju, jonka pitäisi toimia uudella puhelupinolla, on käytettävä ketjuluokan start () -menetelmää.

Osa 2 - Java-haastattelukysymykset monisäikeisestä (Advanced)

Katsokaamme nyt edistyneitä Java-haastattelukysymyksiä ja -vastauksia monisäikeisesti.

Q6. Voimmeko keskeyttää säikeen suorittamisen tiettyyn aikaan?

Vastaus:
Kyllä, tämä voidaan saavuttaa javalla soittamalla ketjuluokan uni (). Sleep () -menetelmä ottaa myös argumentin, joka ilmaisee ajan millisekunnissa.

Q7. Kuinka voimme saavuttaa javan kierteiden ajoituksen?

Vastaus:
Kyllä, säikeiden ajoittaminen javaan on mahdollista. Java-ketjut voidaan ajoittaa kahdella tavalla, ts. Aikaleikkauksella ja ennaltaehkäisevällä ajoittamisella.

Siirrytään seuraavaan Java-haastatteluun liittyviin kysymyksiin monisäikeisestä.

Q8. Voidaanko lanka aloittaa kahdesti?

Vastaus:
Ei, säiettä ei voida käynnistää kahdesti. Jos yritämme aloittaa säiettä kahdesti, se heittää ”java.lang.IllegalThreadStateException”.

Q9. Mikä on sammutuskoukku Java-laitteessa?

Vastaus:
Tämä on suosituin Java-haastattelukysymyksiä monisäikeisestä haastattelusta. Sammutuskoukku on mekanismi, jota käytetään puhdistamaan resursseja, kun JVM sammuu normaalisti tai äkillisesti.

Q10. Mikä on haihtuvaa?

Vastaus:
Haihtuva on avainsana javassa ja sitä voidaan käyttää muuttujien kanssa. Jos muuttuja julistetaan haihtuvaksi, kaikki säikeet lukevat saman muuttujan arvon päämuistista pikemminkin kuin välimuistista, mikä estää virheiden lukemisen, kun useat säikeet käyttävät samaa muuttujaa toiminnassaan.

Suositellut artikkelit

Tämä on opas luetteloon Java-haastattelua koskevista kysymyksistä ja vastauksista monisäikeisestä, jotta hakija voi helposti hajottaa nämä Java-haastattelua koskevat kysymykset monisäikeisestä. Täällä tässä viestissä olemme tutkineet suosituimpia Java-haastattelukysymyksiä monisäikeisyydestä, joita usein haastatteluissa kysytään. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Tietorakenne Java-haastattelukysymykset
  2. Hups Java -haastattelukysymyksiä
  3. Monisäikeiset haastattelukysymykset Java-ohjelmassa
  4. Java-testaushaastattelukysymykset