Johdatus Java-monisäiehaastatteluun liittyviin kysymyksiin ja vastauksiin

Java on nousussa nykyään itsenäisen alustansa ansiosta. Sitä voidaan käyttää missä tahansa, ja siksi sitä käytetään laajasti erilaisten tulevien tekniikoiden kanssa. Jotta voidaan valmistautua siihen, monisäiettäminen on tärkeä aihe, joka keskittyy haastatteluihin. Joten olet vihdoin löytänyt unelmatyösi Java Multi-threads -sovelluksesta, mutta mietit miten haastattelu hajottaa ja mikä voisi olla todennäköinen Java-monisäikeistäminen Haastattelu kysymykset. Jokainen haastattelu on erilainen ja myös työn laajuus on erilainen. Katsotaanpa muutaman tärkeän Java-monisäiehaastattelukysymyksen läpi, joita voidaan kysyä Java-monisäiehaastatteluissa, joita haluaisit jatkaa.

Alla on suosituimmat Java-monisäiehaastattelua koskevat kysymykset ja vastaukset

1.Mikä on Thread JAVA: ssa ja miten se toteutetaan?

Vastaus:
Lanka auttaa helpottamaan monitehtäviä ja monikäsittelyä ohjelmassa. Se käyttää prosessoria tehokkaasti ja auttaa parantamaan sovelluksen suorituskykyä. Java antaa käyttäjälle mahdollisuuden käyttää useita säikeitä kerrallaan. Se voi toimia samanaikaisesti muiden ohjelmien kanssa ilman häiriöitä. Tämä auttaa vähentämään prosessille kuluvaa aikaa. Esimerkiksi, jos ohjelman suorittaminen vie 60 sekuntia, voimme käyttää 6 säiettä, jotka antavat tuloksen 10 sekunnissa.

Java tarjoaa kaksi tapaa yhdistää ketju ohjelmaan. käyttöliittymässä java.lang.Runnable on java.lang.ilmake, joka vaatii tehtävän suorittamiseksi ilmentymän kautta. Thread-luokka toteuttaa jo Runnable-sovelluksen, joten käyttäjä voi suoraan ohittaa run () -menetelmän laajentamalla Thread-luokkaa tai toteuttamalla Runnable-käyttöliittymän.

2.Kun käytettävä Runnable ja milloin Thread Java -sovellusta?

Vastaus:
Java ei tue luokan useita perimöitä, mutta sen avulla voidaan toteuttaa useita käyttöliittymiä kerrallaan. Siksi on parempi toteuttaa Runnable kuin laajentaa ketjuluokkaa.

3. Kuinka erotat langan ja prosessin?

Vastaus:
Lanka on prosessin osajoukko. Yhdessä prosessissa voi olla käynnissä useita säikeitä. Ketjut voivat suorittaa mitä tahansa prosessin osaa. Prosessilla on oma osoite, johon se tallennetaan, kun taas säie jakaa sen luoneen prosessin osoitteen. Prosessin luominen on kiireistä prosessia, kun taas langat voidaan luoda helposti. Lankaa kutsutaan yleensä kevyeksi prosessiksi. Prosessienvälinen viestintä on vaikeaa, kun säieet voivat kommunikoida helposti Java-menetelmien avulla odottaa () ja ilmoittaa (). Prosessit ovat itsenäisiä, joten prosessissa tehdyt muutokset eivät vaikuta lasten prosesseihin. Päinvastoin, jos säieeseen tehdään muutoksia, on olemassa mahdollisuuksia, että muut langat voivat vaikuttaa.

4. Miksi säikeiden käyttäytyminen on arvaamatonta?

Vastaus:
Syynä tähän on säikeiden ajoitus, joka käsittelee ketjujen suorittamista. Aikatauluttajalla saattaa olla erilainen suorituskyky eri alustoilla Windows, UNIX, LINUX jne. Saman säikeen suorittaminen saattaa antaa erilaisia ​​lähtöjä eri alustoilla ja joskus jopa samalla alustalla. Tämän ratkaisemiseksi käyttäjä voi luoda saman Runnable-objektin, luoda run () -silmukat molemmissa säikeissä ja käynnistää molemmat ketjut yhdessä. Ihannetapauksessa aikataulun tulisi valita molemmat ketjut yhdessä, eikä suorituskykyyn pitäisi vaikuttaa, mutta molemmat ketjut tulevat silmukoihin nimettömästi.

5. Mikä on Java-haihtuva muuttuja ja mikä on sen merkitys?

Vastaus:
Java auttaa käyttäjää jakamaan eri säikeissä olevat muuttujat. Haihtuva muuttuja toimii erityisenä modifioijana, jota voidaan käyttää vain esimerkiksi muuttujiin. Koska tämä muuttuja on jaettu, siihen tapahtuu johdonmukaisia ​​muutoksia. Langan on varmistettava, että sillä on yksinoikeus käyttää näitä muuttujia ja että lukitus pakotetaan jaettujen muuttujien vastavuoroiseen poissulkemiseen. Se varmistaa, että kirjoitus tapahtuu ennen sitä seuraavaa lukemista. Java-muistimalli varmistaa tämän muuttujan johdonmukaisuuden. Haihtuvia menetelmiä ei voi olla siellä, koska niitä voidaan käyttää vain muuttujien muodossa.

6. Mitä synkronoitua avainsanaa käytetään? Mitä eroa synkronoiduilla ja haihtuvilla avainsanoilla on?

Vastaus:
Synkronoitua avainsanaa käytetään, kun tarkoituksena on ajaa vain yksi säie kerrallaan sopivassa koodiosassa. Sitä voidaan käyttää osoittamaan neljää tyyppiä erilaisia ​​lohkoja kuten alla:

1) Esimerkkimenetelmät
2) Staattiset menetelmät
3) Koodilohot esiintymämenetelmien sisällä
4) Koodilohot staattisten menetelmien sisällä

Se voidaan julistaa:

Julkinen synkronoitu tyhjä esimerkki () ()

Ero haihtuvan ja synkronoidun avainsanan välillä on se, että synkronoitua voidaan käyttää muuttujan ja menetelmien kanssa, kun taas haihtuvaa ei voida käyttää menetelmien kanssa. Haihtuvia muuttujia ei tallenneta välimuistiin, synkronoidut muuttujat tallennetaan välimuistiin. Haihtuva muuttuja ei koskaan laskeudu umpikujaan, koska se ei vaadi lukon saamista. Jos synkronoiduissa muuttujissa ei käytetä oikein, se voi päätyä umpikujaan.

7. Miksi menetelmät, kuten odottaa (), ilmoittaa () ja ilmoittaa kaikille (), ovat objektiluokassa eivätkä ketjuluokassa?

Vastaus:
Objektiluokassa on näyttöjä, joiden avulla lanka voi lukita objektin, kun taas ketjulla ei ole näyttöjä. Kun jotain yllä mainituista menetelmistä kutsutaan, se odottaa toisen säikeen vapauttavan objektin ja ilmoittaa näytölle kutsumalla ilmoittaa () tai ilmoittamaan kaikille (). Kun ilmoitusta () -menetelmää kutsutaan, se ilmoittaa kaikille ketjuille, jotka odottavat objektin vapautusta. Kohdeluokan monitori tarkistaa objektin, onko se käytettävissä tai ei. Kiertoluokka, jolla on nämä menetelmät, ei auttaisi, koska objektissa on useita ketjuja eikä päinvastoin.

8. Selitä ero nukkumistavoilla () ja odotusmenetelmillä ().

Vastaus:
1) uni () -menetelmää kutsutaan säikeisiin eikä objekteihin. Objektiin kutsutaan Wait () -menetelmää.
2) Kun kutsutaan odotus () -menetelmää, monitori siirtää säiettä käynnissä odotustilaan. Kun säie on odottamassa (), se voi siirtyä ajettavissa vain, kun se on ilmoittanut () tai ilmoitaall () kyseiselle objektille. Aikataulu muuttaa tilan tämän jälkeen. Kun nukkumistapa () -menetelmässä tila vaihdetaan odottamaan ja palaa ajettavissa olevaan vasta nukkumisajan päätyttyä.
3) Odota () -menetelmä on osa java.lang.Object-luokkaa, kun taas uni () on osa java.lang.wread-luokkaa.
4) Odota () käytetään aina synkronoidun lohkon kanssa, koska se vaatii objektin lukitsemisen, kun nukkumista () voidaan käyttää synkronoidun lohkon ulkopuolelta.

9. Kuinka pakottaa langan aloittaminen Java: lla?

Vastaus:
Java-sovelluksessa monisäikeinen ei voi pakottaa langan aloittamista. Vain säikeensuunnittelija voi ohjata ketjuja, eikä heille ole altistettu mitään ohjattavaa sovellusliittymää.

10. Jättääkö säie objektin lukituksen, kun kutsutaan odotus- () ja lepotila- () -menetelmiä?

Vastaus:
Kun lanka on lepotilassa (), se ei jätä lukkoa ja siirtyy odotustilaan. Lanka odottaa nukkumisajan päästäkseen yli. Kun käytetään odotus () -menetelmää, säie jättää esineen lukituksen ja siirtyy odotustilaan. Kun ilmoitusta () on kutsuttu, se menee taas käyttötilaan ja saa lukituksen.

Suositeltava artikkeli

Tämä on opas luetteloon Java-monisäiehaastattelua koskevista kysymyksistä ja vastauksista, jotta ehdokas voi helposti hajottaa nämä Java-monisäiemäiset haastattelukysymykset. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Java-kehittäjien haastattelukysymykset - Kuinka murtaa seitsemän tärkeintä kysymystä
  2. Kattava opas Java-sovellusten kehittämiseen (mahtava teoria)
  3. Maven -haastattelun kysymykset ja vastaukset Ylhäältä ja eniten kysyttyjä
  4. 10 edistynyttä AngularJS-haastattelukysymystä kokeneille