Sissejuhatus Java intervjuu küsimused ja vastused mitmekeelsuse kohta

Enne Java-intervjuu küsimuste juurde asumist arutame multikeermestamise teemal mõned multikeeramist puudutavad faktid.

# 1 - nii et me peaksime kõigepealt teadma, mis on niit?

See on konkreetse teose töötlemise väikseim ühik, mida nimetatakse lõimeks. See on oma olemuselt kerge, nii lihtne kasutada. Nüüd tuleb meelde, et miks me seda vajame, kasutatakse multitegumtöötluse saavutamiseks mitmekordseid keermeid. Multitegumtöötlust võiks saavutada ka muul viisil ja seda tuntakse kui mitmeprotsessimist.

Mitmekeermestamine on aga populaarsem ja seda on efektiivne kasutada mitme töötlemise korral, kuna niitidel on omadusi, et see kasutab jagatud mälu ala, samas kui mitmeprotsessilise protsessi korral kulutab see palju mälu ja muid ressursse, mis pole efektiivsed.

Nii et mitme lõime samaaegset täitmist mõne töö tegemiseks nimetatakse mitmekeermeliseks.

Mõned keermestamise kasutamise eelised:

  • Niidid töötavad sõltumatult, nii et see on sõltumatu muudest süsteemides toimuvatest toimingutest ja seega on võimalik korraga teha mitu toimingut.
  • Mitmekeermestamise korral on ajakulu vähem, kuna paljusid toiminguid saab teha üheaegselt.
  • Nimed on sõltumatud, nagu juba arutatud, nii et erand ühe lõime puhul ei häiri teiste lõimede toiminguid.
  • Kahe lõime vahelise kommunikatsiooni maksumus on madal.

Multitegumtöötluse saame saavutada kahel järgmisel viisil:

  • Protsessipõhine multitegumtöötlus (mitme töötlemine)
  • Keermepõhine multitegumtöötlus (mitmekeermeline)

MÄRKUS. Kuna me arutame mitme lõime ületamist, keskendume niidipõhisele mitmetasandilisele töötamisele.

Keerme elutsükkel:

  • Uus
  • Juhitav
  • Jooksmine
  • Mitte käivitatav (blokeeritud)
  • Lõpetatud

MÄRKUS . Tutvumiseks ja paremaks mõistmiseks lugege hoolikalt allolevat pilti.

# 2 - kuidas lõime luuakse?

Nüüd on see kõige olulisem ja esimene punkt, mille abil saame lõime luua. Lõimede loomiseks on kaks viisi, mida arutatakse allpool:

  • Keerme klassi laiendades
  • Rakendades käitatava liidese

MÄRGE:

Uue lõime loomisel teostatakse järgmised ülesanded:

  1. Uues kõnes luuakse niit.
  2. Niit muudab oma oleku Uuest Käivitatavaks.
  3. Kui lõime käivitatakse, leiab see meetodi run () ja käivitab selle.

NÄIDE:

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();
)
)

NÄIDE:
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();
)
)

MÄRKUS. Pidage meeles kahe ülaltoodud näite erinevust. Kahe ülaltoodud näite peamine erinevus seisneb selles, et kui me lõime ei laienda, siis proovime lõime luua, rakendades käivitatava liidese ja klassifitseerime lõime käivitamiseks meetodi start (), siis lõime ei moodustata uues kõnes. kuna seda ei tuvastata niidina.

Niisiis, et see tuvastataks lõimena, peame keerme klassi konstruktorile argumendina andma klassi eksemplari, kus oleme rakendanud käitatava liidese ja siis peame kutsuma start () meetodi.

Ajastamine lõimes:

Kuna nad kõik teavad, et ajakava tähendab ülesande plaanimist konkreetsel ajal.

Lõimede ajastamine on sarnane konkreetse lõime ajastamise mehhanism, mis säilitab mõnda protokolli. Lõimede ajastamine töötab Java keeles kahel erineval viisil.

  • Ennetav sõiduplaani koostamine
  • Aja viilimine.

Ennetav ajakava:

JMV otsustab kõrgeima prioriteediga ülesande ja alustab täitmist, kuni see siseneb oote- või surnud olekusse või saabub kõrgema prioriteediga ülesanne.

Aja viilimine:

JVM alustab konkreetse lõime täitmist kindla ajavahemiku jooksul ja seejärel liigutab sama lõime kogumisse ja valib hilisemate prioriteetide ja muude tegurite alusel muu lõime. See protsess jätkub, kuni kogu niit lõpetab selle protsessi.

Kui otsite tööd, mis on seotud Java multithreadinguga, peate valmistuma 2018. aasta Java intervjuu küsimusteks multithreadingu kohta. On tõsi, et iga vestlus on erinevate tööprofiilide järgi erinev. Oleme siin koostanud olulised Java-intervjuu küsimused ja vastused mitmekeelsuse kohta, mis aitavad teil oma intervjuus edu saavutada.

Selles 2018. aasta Java-intervjuu küsimuses mitmekeelsuse kohta tutvustame 10 kõige olulisemat ja korduma kippuvat Java-intervjuu küsimust mitmekeelsuse kohta. Need intervjuuküsimused on jagatud kahte ossa:

1. osa - Java intervjuu küsimused mitmekeelsuse kohta (põhilised)

See esimene osa hõlmab Java-intervjuu põhiküsimusi ja vastuseid mitmekeelsuse kohta.

Q1. Kas vahet protsessil ja lõimel?

Vastus:
Protsess on programm või rakendus, samas kui lõime on üks protsessis täidetav ülesanne. Niit on kerge, samas kui protsess on raske. Niit nõuab vähem, samas kui protsess nõuab rohkem ressurssi, seega nimetatakse seda oma olemuselt tugevalt kaaluvaks.

Q2. Kas vahet kasutaja niidil ja deemoni lõimel?

Vastus:
Javas loodud lõime nimetatakse kasutaja lõimeks. Deemoni niit töötab alati taustal ja selle täielik elutsükkel sõltub peamisest niidist. Taustal töötav deemoni niit ei takista JVM-i selle lõpetamast. Deemonniidist loodud lastelõng saab ka deemonniidiks.

Liigume järgmiste Java-intervjuu küsimuste juurde mitme lõime kohta.

Q3. Lõime Java loomise erinev viis?

Vastus:
Java lõime saab luua kahel viisil:

  • Keerme klassi laiendamisega.
  • Rakendades käitatava liidese.

Q4. Milline on lõime elutsükkel?

Vastus:
See on tavaline Java intervjuu küsimus multithreadingu kohta, mille küsiti intervjuus. Järgmine on lõime elutsükkel:

  • Uus
  • Juhitav.
  • Jooksmine.
  • Blokeeritud.
  • Lõpetatud

Q5. Mis juhtub, kui nimetame niidi klassi run () meetodit?

Vastus:
Run () meetodi otse kutsumisel kompileeritakse ja käivitatakse programm edukalt, kuid sama programmi ei käsitleta niidina, kuna uut kõnede virna ei looda ja programm alustab selle täitmist samas kõnes, kus peamine töötab.

Lõime loomiseks, mis peaks toimuma uue kõnepinuga, tuleb kasutada lõimeklassi alguspunkti () meetodit.

2. osa - Java intervjuu küsimused mitmekeelsuse kohta (täpsemad)

Vaatame nüüd täiustatud Java-intervjuu küsimusi ja vastuseid mitmekeelsusel.

Q6. Kas saab lõime täitmise konkreetsel ajal peatada?

Vastus:
Jah, seda saab javas saavutada, kui helistate klassi niidile une (). Unerežiimi () meetod võtab ka argumendi, mis näitab aega millisekundites.

Q7. Kuidas saavutada javas keerme ajakava?

Vastus:
Jah, lõimede ajastamine javas on võimalik. Java lõime saab ajastada kahel viisil, st aja viilimiseks ja ennetavaks ajastamiseks.

Liigume järgmiste Java-intervjuu küsimuste juurde mitme lõime kohta.

Q8. Kas lõime saab alustada kaks korda?

Vastus:
Ei, lõime ei saa kaks korda alustada. Kui proovime lõime kaks korda alustada, viskab see java.lang.IllegalThreadStateException.

Q9. Mis on Java väljalülituskonks?

Vastus:
See on kõige populaarsem Java-intervjuu küsimus, mis on Multithreads intervjuus küsitud. Seiskamiskonks on mehhanism, mida kasutatakse JVM normaalseks või järsuks seiskamiseks ressursside puhastamiseks.

Q10. Mis on lenduv?

Vastus:
Lenduvad on java märksõna ja seda saab kasutada muutujatega. Kui muutuja kuulutatakse muutlikuks, loevad kõik lõimed sama muutuja väärtuse pigem põhimälust kui vahemälust, seega väldib see lugemisvea tekkimist, kui mitu lõime kasutavad sama muutujat oma toimingutes.

Soovitatavad artiklid

See on olnud teemaks Java-intervjuu küsimuste ja vastuste loendit multikeermestamise kohta, et kandidaat saaks hõlpsasti need Java-intervjuu küsimused mitmekeelsuse kohta lahti hammustada. Selles postituses oleme uurinud populaarsemaid Java-intervjuu küsimusi mitmekeelsuse kohta, mida küsitakse sageli intervjuudes. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Andmestruktuur Java intervjuu küsimused
  2. Vabandust Java intervjuuküsimuste suhtes
  3. Mitme lõimega intervjuuküsimused Java-s
  4. Java testimise intervjuu küsimused