Java mitme lõimega intervjuu küsimuste ja vastuste sissejuhatus

Java on iseseisva platvormi tõttu praegu buumis. Seda saab käivitada kõikjal ja seetõttu kasutatakse seda laialdaselt erinevate tulevaste tehnoloogiatega. Selleks, et olla valmis, on mitme keermestamine oluline teema, mis keskendub intervjuudele. Nii et olete lõpuks leidnud oma unistuste töö Java mitme lõimega, kuid mõtlete, kuidas intervjuud lõhestada ja mis võiks olla Java mitme keermestamise tõenäoline Intervjuu küsimused. Iga vestlus on erinev ja ka töö ulatus. Vaatame läbi mõned olulised Java mitme lõimega intervjuu küsimused, mida võidakse küsida Java mitme lõimega intervjuudes, mida te võiksite kasutada.

Allpool on populaarsemad Java mitme keermega intervjuu küsimused ja vastused

1.Mis on lõim JAVA-s ja kuidas seda rakendada?

Vastus:
Niit aitab hõlbustada mitme ülesande täitmist ja mitut töötlemist programmi raames. See kasutab protsessorit tõhusalt ja aitab parandada rakenduse toimimist. Java võimaldab kasutajal kasutada korraga mitut lõime. See võib töötada paralleelselt teiste programmidega ilma häireteta. See aitab vähendada protsessi aega. Näiteks kui programmi täitmiseks kulub 60 sekundit, võime kasutada 6 lõime, mis annavad tulemuse 10 sekundiga.

Java pakub lõime rakendamiseks kahel viisil. liides java.lang.Runnable sisaldab eksemplari java.lang.Lõng, mille täitmiseks on vaja toimikut esinemisjuhu kaudu. Thread-klass rakendab juba Runnable'i, nii et kasutaja saab run () -meetodi otse alistada, laiendades niidiklassi või rakendades Runnable-liidest.

2.Kui kasutada Runnable ja millal lõime Java?

Vastus:
Java ei toeta klassi mitut pärandit, kuid see võimaldab korraga rakendada mitut liidest. Seetõttu on parem Runnable rakendada kui niidiklassi laiendada.

3. Kuidas eristada lõime ja protsessi?

Vastus:
Niit on protsessi alamhulk. Ühel protsessil võib selle jaoks olla mitu lõime. Nimed võivad käivitada protsessi mis tahes osa. Protsessil on oma aadress, kuhu see salvestatakse, samas kui lõim jagab selle loonud protsessi aadressi. Protsessi loomine on kirglik protsess, samas kui lõime saab hõlpsalt luua. Niiti nimetatakse tavaliselt kergeks protsessiks. Protsessidevaheline suhtlus on keeruline, kuna niidid saavad Java-meetodite ootamise () ja teatamise () abil hõlpsalt suhelda. Protsessid on sõltumatud, seega ei mõjuta protsessis tehtud muudatused lapseprotsesse. Vastupidi, kui niidis tehakse muudatusi, on võimalus, et see mõjutab teisi lõime.

4. Miks öeldakse, et niidi käitumine on ettearvamatu?

Vastus:
Selle põhjuseks on lõimede planeerija, mis tegeleb lõimede täitmisega. Planeerija võib-olla erinevatel jõudlustel on erinevatel platvormidel Windows, UNIX, LINUX jne. Sama lõime käivitamisel võib erinevatel platvormidel ja mõnikord isegi samal platvormil olla erinev väljund. Selle lahendamiseks saab kasutaja luua sama Runnable objekti, luua mõlemasse lõime run () silmused ja käivitada mõlemad lõimed koos. Ideaalis peaks planeerija valima mõlemad lõimed koos ja jõudlust ei tohiks see mõjutada, kuid mõlemad lõimed sisestavad silmused anonüümselt.

5. Mis on Java muutlik muutuja ja mis on selle olulisus?

Vastus:
Java hõlbustab kasutajal erinevates lõimedes esinevate muutujate jagamist. Lenduv muutuja toimib spetsiaalse modifikaatorina, mida saab kasutada ainult näiteks muutujate jaoks. Kuna seda muutujat jagatakse, toimuvad muutused selles järjepidevalt. Niit peab tagama, et sellel muutujatel on ainuõigus pääseda juurde ja lukustatud on jagatud muutujate vastastikune välistamine. See tagab, et kirjutamine toimub enne iga järgnevat lugemist. Java mälumudel tagab selle muutuja järjepidevuse. Lenduvad meetodid ei saa seal olla, kuna neid saab kasutada ainult muutujate kujul.

6. Mis on sünkroniseeritud märksõna kasutamine? Mis vahe on sünkroonitud ja kõikuvatel märksõnadel?

Vastus:
Sünkroniseeritud märksõna kasutatakse juhul, kui eesmärk on käivitada korraga ainult üks niit sobivas koodilõigus. Seda saab kasutada nelja erinevat tüüpi plokkide kuvamiseks nagu allpool:

1) astme meetodid
2) Staatilised meetodid
3) Koodiplokid eksemplaride meetodite sees
4) Koodiplokid staatiliste meetodite sees

Seda saab deklareerida järgmiselt:

Avalik sünkroniseeritud tühine näide () ()

Lenduva ja sünkroniseeritud märksõna erinevus seisneb selles, et sünkroonitud saab kasutada muutujate ja meetoditega, lenduvaid aga mitte meetoditega. Lenduvaid muutujaid ei salvestata vahemällu, sünkroniseeritud muutujaid salvestatakse vahemällu. Lenduv muutuja ei satu kunagi ummikseisu, kuna see ei nõua lukustuse saamist. Kui need pole sünkroonitud muutujates õigesti tehtud, võib see sattuda ummikseisu.

7. Miks on sellised objektid nagu oota (), teata () ja teata kõik () objektide klassis, mitte niidiklassis?

Vastus:
Objektiklassil on monitorid, mis võimaldavad niidil objekti lukustada, samas kui niidil pole ühtegi monitori. Kui mõnda ülalnimetatud meetoditest nimetatakse, ootab ta objekti vabastamiseks uue lõime ja teavitab monitori, helistades teavitama () või teavitama kõiki (). Kui meetodit teavitatakse (), teeb see teatavaks kõik niidid, mis ootavad objekti vabastamist. Objektiklassi monitor kontrollib objekti, kas see on saadaval või mitte. Nende meetoditega niidiklass ei aitaks, kuna objektil on mitu lõime ja mitte vastupidi.

8. Selgitage une () ja ootamise () meetodite erinevust.

Vastus:
1) une () meetodit nimetatakse niitidel, mitte objektidel. Objektidel nimetatakse meetodit Wait ().
2) Kui nimetatakse ootamise () meetodit, viib monitor niidi kulgemisest ooteolekusse. Kui lõime on ootamas (), saab see liikuda käitatavaks ainult siis, kui ta on selle objekti kohta teatanud () või teatanudall (). Ajastaja muudab pärast seda olekut. Unerežiimis () töötamise ajal muudetakse olekut ootamiseks ja see naaseb uuesti käivitatavaks alles siis, kui uneaeg on möödas.
3) Wait () meetod on osa java.lang.Object klassist, uni () aga osa java.lang.Theread klassist.
4) Ootamist () kasutatakse alati sünkroonitud plokiga, kuna see nõuab objekti lukustamist, kui unerežiimi () saab kasutada väljastpoolt sünkroniseeritud plokki.

9. Kuidas sundida Java lõime käivitama?

Vastus:
Java-keeles ei saa mitme lõimega niiti alustama sundida. Ainult lõimede ajastaja saab niite juhtida ja nende jaoks pole kontrollimise jaoks ette nähtud ühtegi API-d.

10. Kas niit jätab objekti lukustuse, kui nimetatakse ootamise () ja puhkeoleku () meetodeid?

Vastus:
Kui niit on puhkeolekus (), ei jäta see lukku ja liigub ooteolekusse. Niit ootab uneaega, et sellest üle saada. Kui kasutatakse ootamise () meetodit, jätab niit objekti lukustuse ja läheb ooteolekusse. Kui teatele () on helistatud, läheb see jälle tööasendisse ja omandab luku.

Soovitatav artikkel

See on juhend Java mitme lõimega intervjuu küsimuste ja vastuste loendist, nii et kandidaat saab hõlpsalt neid Java mitme lõimega intervjuu küsimusi lahendada. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Java arendaja intervjuu küsimused - kuidas murda seitset kõige populaarsemat küsimust
  2. Java rakenduste arendamise põhjalik juhend (vinge teooria)
  3. Maveni intervjuu küsimused ja vastused | Üles ja enim küsitud
  4. 10 keerukamat AngularJS-i intervjuu küsimust kogenud isikutele