Úvod do otázok a odpovedí na rozhovor s technológiou Java Multi-Threading

Java je v dnešnej dobe na vzostupe vďaka svojej nezávislej platforme. Môže byť spustený kdekoľvek, a preto sa široko používa s rôznymi pripravovanými technológiami. Aby ste na to boli pripravení, je viaczávitové vlákno dôležitou témou, ktorá sa zameriava na rozhovory. Takže ste konečne našli svoju vysnívanú prácu v Java Multi-threading, ale zaujíma vás, ako rozlúštiť rozhovor a aká by mohla byť pravdepodobná Java Multi-threading. Rozhovor Otázky. Každý pohovor je iný a rozsah zamestnania je tiež odlišný. Pozrime sa na niekoľko dôležitých otázok týkajúcich sa rozhovoru Java Multi-Threading, ktoré sa môžu opýtať v rozhovoroch Java Multi-Threading, ktoré by ste sledovali.

Nižšie sú uvedené najdôležitejšie otázky a odpovede týkajúce sa rozhovoru Java s viacerými vláknami

1.Čo je vlákno v JAVA a ako ho implementujete?

odpoveď:
Vlákno pomáha uľahčiť multi-tasking a multi-processing v rámci programu. Efektívne využíva procesor a pomáha zlepšovať výkon aplikácie. Java umožňuje užívateľovi používať viac vlákien súčasne. Môže bežať súbežne s inými programami bez prerušenia. Pomáha to skrátiť čas na proces. Napríklad, ak vykonanie programu trvá 60 sekúnd, môžeme použiť 6 vlákien, ktoré nám poskytnú výsledok za 10 sekúnd.

Java poskytuje dva spôsoby, ako implementovať vlákno do programu. Rozhranie java.lang.Runnable má inštanciu java.lang.A vlákno, ktoré vyžaduje vykonanie úlohy prostredníctvom inštancie. Trieda vlákna už implementuje Runnable, takže užívateľ môže priamo prepísať metódu run () rozšírením triedy Thread alebo implementáciou rozhrania Runnable.

2. Kedy používať Runnable a kedy používať vlákno v jazyku Java?

odpoveď:
Java nepodporuje viaceré dedičstvá triedy, ale umožňuje implementovať viacero rozhraní naraz. Preto bude lepšie implementovať Runnable ako rozšírenie triedy Thread.

3. Ako rozlišujete vlákno a postup?

odpoveď:
Vlákno je podmnožinou procesu. Jeden proces môže mať spustených viac vlákien. Vlákna môžu bežať v akejkoľvek časti procesu. Proces má svoju vlastnú adresu, na ktorej je uložený, zatiaľ čo vlákno zdieľa adresu procesu, ktorý ho vytvoril. Vytvorenie procesu je hektický proces, zatiaľ čo vlákna sa dajú ľahko vytvoriť. Niť sa zvyčajne označuje ako ľahký proces. Medziprocesová komunikácia je náročná, zatiaľ čo vlákna môžu ľahko komunikovať pomocou Java metód wait () a notify (). Procesy sú nezávislé, a preto žiadna zmena vykonaná v procese neovplyvňuje podriadené procesy. Naopak, ak dôjde k zmenám vo vlákne, existujú možnosti, že môžu byť ovplyvnené aj iné vlákna.

4. Prečo sa hovorí, že vláknové správanie je nepredvídateľné?

odpoveď:
Dôvodom je plánovač vlákien, ktorý spracováva vykonávanie vlákien. Plánovač môže mať rôzny výkon na rôznych platformách Windows, UNIX, LINUX, atď. Pri vykonávaní rovnakého vlákna môže poskytovať rôzne výstupy na rôznych platformách a niekedy dokonca na tej istej platforme. Na vyriešenie tohto problému môže užívateľ vytvoriť rovnaký spustiteľný objekt, vytvoriť slučky run () v obidvoch vláknach a začať obidve vlákna spoločne. V ideálnom prípade by plánovač mal vybrať obidva vlákna spolu a výkon by nemal byť ovplyvnený, ale obidva vlákna vstúpia do slučiek anonymne.

5. Čo je prchavá premenná v Jave a aký je jej význam?

odpoveď:
Java umožňuje užívateľovi zdieľať premenné prítomné v rôznych vláknach. Prchavá premenná funguje ako špeciálny modifikátor, ktorý je možné použiť iba pre premenné. Keďže táto premenná je zdieľaná, mali by sa s ňou konzistentne meniť. Vlákno musí zabezpečiť, že má výhradný prístup k týmto premenným a zámok je nútený k vzájomnému vylúčeniu zdieľaných premenných. Zaisťuje, že k zápisu dôjde pred akýmkoľvek následným prečítaním. Pamäťový model Java zaisťuje konzistenciu tejto premennej. Prchavé metódy nemôžu existovať, pretože sa dajú použiť iba vo forme premenných.

6. Aké je použitie synchronizovaného kľúčového slova? Aký je rozdiel medzi synchronizovanými a nestabilnými kľúčovými slovami?

odpoveď:
Synchronizované kľúčové slovo sa používa, keď je účelom spustiť naraz iba jedno vlákno v príslušnej časti kódu. Môže sa použiť na zobrazenie štyroch typov rôznych blokov, ako je uvedené nižšie:

1) Metódy inštancie
2) Statické metódy
3) Bloky kódu v rámci inštančných metód
4) Bloky kódu vo vnútri statických metód

Dá sa deklarovať ako:

Verejný príklad synchronizovaného prázdneho priestoru () ()

Rozdiel medzi volatilným a synchronizovaným kľúčovým slovom je v tom, že synchronizované sa dá použiť s premennou a metódami, zatiaľ čo volatile sa nemôže použiť s metódami. Prchavé premenné sa neukladajú do vyrovnávacej pamäte, synchronizované premenné sa ukladajú do vyrovnávacej pamäte. Prchavá premenná sa nikdy nedostane do slepej uličky, pretože nevyžaduje zámok. Ak sú synchronizované premenné, pokiaľ nie sú správne vykonané, môže to skončiť v slepej uličke.

7. Prečo sú metódy ako wait (), notifikovať () a notifikovať všetky () v triede objektov a nie v triede vlákna?

odpoveď:
Trieda objektov má monitory, ktoré umožňujú vláknu uzamknúť objekt, zatiaľ čo vlákno nemá žiadne monitory. Keď sa volá niektorá z vyššie uvedených metód, čaká na ďalšie vlákno na uvoľnenie objektu a upozorní monitora volaním notifikácie () alebo notifikácie všetkých (). Keď sa volá metóda Notify (), vykoná to notifikáciu všetkých vlákien, ktoré čakajú na uvoľnenie objektu. Monitor triedy objektu kontroluje, či je k dispozícii alebo nie. Trieda vlákna, ktorá má tieto metódy, by nepomohla, pretože na objekte existuje viac vlákien, a nie naopak.

8. Vysvetlite rozdiel medzi metódami spánku () a čakania ().

odpoveď:
1) metóda sleep () sa volá na vláknach a nie na objektoch. Na objekty sa volá metóda Wait ().
2) Keď sa volá metóda wait (), monitor presunie vlákno zo stavu do čakajúceho stavu. Akonáhle je vlákno v čakaní (), môže sa pohybovať, aby bolo spustiteľné, iba ak má na tento objekt notifikáciu () alebo notifikáciu (). Plánovač potom zmení stav. V režime spánku () sa stav zmení na čakanie a obnoví sa až po uplynutí času spánku.
3) Metóda wait () je súčasťou triedy java.lang.Object, zatiaľ čo sleep () je súčasťou triedy java.lang.Thread.
4) Wait () sa vždy používa so synchronizovaným blokom, pretože vyžaduje uzamknutie objektu, zatiaľ čo sleep () sa môže použiť z externého synchronizovaného bloku.

9. Ako prinútiť spustenie vlákna v Jave?

odpoveď:
V Jave nemôže viacvláknový proces nútiť spustiť vlákno. Vlákna môžu riadiť iba plánovač vlákien a nie sú vystavené žiadnemu API na riadenie.

10. Ponecháva vlákno uzamknutie objektu, keď sa volajú metódy wait () a sleep ()?

odpoveď:
Keď je vlákno v režime spánku (), neopustí zámok a prejde do čakacieho stavu. Vlákno čaká na spánok. Pri použití metódy wait () vlákno opúšťa zámok objektu a prejde do čakacieho stavu. Akonáhle je notifikácia () volaná, znova prejde do bežiaceho stavu a získa zámok.

Odporúčaný článok

Toto bol sprievodca Zoznamom otázok a odpovedí na otázky týkajúce sa viaczávitových rozhovorov v jazyku Java, aby mohol kandidát ľahko vykonať zákroky s týmito otázkami a odpoveďami na viacnásobné vlákna v jazyku Java. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Java Developer Interview Otázky - Ako prelomiť Top 7 otázok
  2. Komplexný sprievodca vývojom aplikácií Java (Awesome Theory)
  3. Maven Rozhovor Otázky a odpovede Najlepšie a najčastejšie otázky
  4. 10 otázok pre pokročilých AngularJS Interview pre skúsených

Kategórie: