Úvod Otázky a odpovede týkajúce sa rozhovoru v jazyku Java týkajúce sa viacerých vlákien

Predtým, ako sa pustíme do rozhovoru v jazyku Java, otázky týkajúce sa viacvláknového spracovania, porozprávajme sa o niektorých skutočnostiach týkajúcich sa viacvláknového spracovania.

# 1 - Takže najskôr by sme mali vedieť, čo je vlákno?

Je to najmenšia jednotka spracovania, ktorá sa nazýva vlákno. Je ľahký v prírode, takže sa ľahko používa. Teraz si myslíme, že prečo by sme to mali potrebovať, multithreading sa používa na dosiahnutie multitaskingu. Multitasking sa dá dosiahnuť aj iným spôsobom a je známy ako multiprocesing.

Viacvláknové spracovanie údajov je však obľúbenejšie a efektívnejšie sa používa pri multiprocesovaní, pretože vlákna majú vlastnosti, ktoré využívajú oblasť zdieľanej pamäte, zatiaľ čo v prípade viacerých procesov spotrebuje veľa pamäte a iné zdroje, ktoré nie sú efektívne.

Proces vykonávania viacerých vlákien súčasne na vykonanie určitej práce sa preto nazýva multithreading.

Niektoré výhody používania multithreadingu:

  • Vlákna pracujú nezávisle, takže sú nezávislé od iných operácií prebiehajúcich v systémoch, a preto je možné vykonávať viac operácií súčasne.
  • Časová spotreba je pri použití multithreadingu menšia, pretože mnoho operácií je možné vykonávať súčasne.
  • Vlákna sú nezávislé, ako už bolo uvedené, takže v jednom vlákne sa vyskytne výnimka, že nebude zasahovať do činnosti iných vlákien.
  • Náklady na komunikáciu medzi dvoma vláknami sú nízke.

Multitasking môžeme dosiahnuť dvoma spôsobmi:

  • Procesné multitasking (multiprocesing)
  • Multitasking na základe vlákna (multithreading)

POZNÁMKA: Keď diskutujeme o multithreadinge, zameriame sa na multitasking s vláknami.

Životný cyklus vlákna:

  • Nový
  • Runnable
  • beh
  • Non-runnable (Blocked)
  • ukončený

POZNÁMKA: Kvôli vašej orientácii a lepšiemu porozumeniu si pozorne prečítajte nižšie uvedený obrázok.

# 2 - Ako sa vytvárajú vlákna?

Teraz je to najdôležitejší a prvý bod, ktorým môžeme vytvoriť vlákno. Existujú dva spôsoby, ako možno vytvoriť vlákna, ktoré sú uvedené nižšie:

  • Rozšírením triedy vlákna
  • Implementáciou rozhrania Runnable

POZNÁMKA:

Po vytvorení nového vlákna sa vykonajú nasledujúce úlohy:

  1. V novom zásobníku hovorov sa vytvorí vlákno.
  2. Vlákno zmení svoj stav z nového na spustiteľný.
  3. Keď sa vlákno spustí, nájde metódu run () a potom ju vykoná.

Príklad:

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

Príklad:
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();
)
)

POZNÁMKA: Nezabudnite na rozdiel medzi vyššie uvedenými dvoma príkladmi. Hlavným rozdielom vo vyššie uvedených dvoch príkladoch je to, že ak nebudeme rozširovať vlákno, skôr sa pokúsime vytvoriť vlákno implementáciou rozhrania Runnable a triedou metódy start () na spustenie vlákna, potom sa behúň nevytvorí v novom zásobníku hovorov. pretože nebude označená ako vlákno.

Aby sme ho identifikovali ako vlákno, musíme odovzdať inštanciu triedy, v ktorej sme implementovali rozhranie Runnable Interface ako argument konštruktorovi triedy vlákna, a potom musíme zavolať metódu start ().

Plánovanie vo vlákne:

Ako všetci vedia, tento rozvrh znamená vykonať plán v určitom čase.

Plánovanie vlákien je podobný mechanizmus plánovania konkrétneho vlákna, ktoré udržuje niektoré protokoly. Existujú dva rôzne spôsoby, ako funguje plánovanie vlákien v Java.

  • Preventívne plánovanie
  • Časové plátky.

Preventívne plánovanie:

JMV rozhodne o úlohe s najvyššou prioritou a začne vykonávanie, až kým nevstúpi do čakajúcich alebo mŕtvych stavov alebo kým nenastane úloha s vyššou prioritou.

Časové krájanie:

JVM začne vykonávať konkrétne vlákno pre konkrétne časové obdobie a potom presunie rovnaké vlákno do oblasti a vyberie iné vlákno na základe priority a ďalších faktorov pre vykonanie. Tento proces pokračuje dovtedy, kým celý proces nite neskončí.

Teraz, ak hľadáte prácu, ktorá súvisí s Java Multithreading, musíte sa pripraviť na 2018 otázok Java Interview o Multithreading. Je pravda, že každý pohovor sa líši podľa rôznych profilov zamestnania. Tu sme pripravili dôležité otázky týkajúce sa rozhovoru v jazyku Java a odpovede týkajúce sa viacvláknového spracovania, ktoré vám pomôžu dosiahnuť úspech v rozhovore.

V tomto článku 2018 otázok Java Interview o viacvláknovom spracovaní predstavíme 10 najdôležitejších a najčastejšie kladených otázok Java Interview o viacvláknovom spracovaní. Tieto otázky týkajúce sa rozhovoru sú rozdelené do dvoch častí:

1. časť - Otázky týkajúce sa rozhovoru v jazyku Java týkajúce sa viacerých vlákien (základné)

Táto prvá časť sa zaoberá základnými otázkami Java Interview a odpoveďami na viacvláknové spracovanie.

Q1. Rozlišujte medzi procesom a vláknom?

odpoveď:
Proces je program alebo aplikácia, zatiaľ čo vlákno je jediná úloha, ktorá sa má vykonať v rámci procesu. Niť je ľahká, zatiaľ čo proces je ťažký. Vlákno vyžaduje menej, zatiaľ čo proces vyžaduje viac zdrojov, preto sa v prírode nazýva silne vážený.

Q2. Rozlišujte medzi vláknami užívateľa a vláknami démona?

odpoveď:
Vlákno vytvorené v jave sa nazýva užívateľské vlákno. Vlákno démona Daemon vždy beží na pozadí a jeho celý životný cyklus závisí od hlavného vlákna. Vlákno démona, ktoré beží na pozadí, nezabráni JVM v jeho ukončení. Podriadené vlákno vytvorené z vlákna démona bude tiež vláknom démona.

Prejdime k ďalším otázkam týkajúcim sa rozhovoru Java o multithreadinge.

Q3. Iný spôsob, ako vytvoriť vlákno v Jave?

odpoveď:
Vlákna v Jave môžu byť vytvorené dvoma spôsobmi:

  • Rozšírením triedy vlákna.
  • Implementáciou Runnable Interface.

Q4. Aký je životný cyklus vlákna?

odpoveď:
Toto sú bežné otázky týkajúce sa rozhovoru v jazyku Java týkajúce sa viacvláknovej výroby, ktoré boli položené počas rozhovoru. Nasleduje životný cyklus vlákna:

  • Nový
  • Spustiteľný.
  • Beží.
  • Blokovaný.
  • Ukončený.

Q5. Čo sa stane, ak budeme volať metódu run () triedy vlákna?

odpoveď:
Priama voľba metódy run () skompiluje a vykoná program úspešne, ale s rovnakým programom sa nebude zaobchádzať ako s vláknom, pretože sa nevytvorí nový zásobník volaní a program začne jeho vykonávanie v rovnakom zásobníku volaní, v ktorom je spustený hlavný program.

Na vytvorenie vlákna, ktoré by malo bežať s novým zásobníkom hovorov, je potrebné použiť metódu start () triedy Thread.

2. časť - Otázky týkajúce sa rozhovoru v jazyku Java týkajúce sa viacvláknovej výroby (rozšírené)

Pozrime sa teraz na pokročilé otázky a odpovede týkajúce sa rozhovoru v jazyku Java týkajúce sa multithreadingu.

Q6. Môžeme pozastaviť vykonanie vlákna v konkrétnom čase?

odpoveď:
Áno, dá sa to dosiahnuť pomocou Java, keď zavoláte spánok () triedy vlákna. Metóda Sleep () tiež berie argument, ktorý naznačuje čas v milisekundách.

Q7. Ako môžeme dosiahnuť rozvrhnutie vlákna v jave?

odpoveď:
Áno, plánovanie vlákien v jave je možné. Vlákna v Jave môžu byť plánované dvoma spôsobmi, tj Time Slicing a Pre-emptive Scheduling.

Prejdime k ďalším otázkam týkajúcim sa rozhovoru Java o multithreadinge.

Q8. Môže byť vlákno spustené dvakrát?

odpoveď:
Nie, vlákno sa nemôže spustiť dvakrát. Ak sa pokúsime spustiť vlákno dvakrát, vyvolá to „java.lang.IllegalThreadStateException“.

Q9. Čo je to vypínací hák v jazyku Java?

odpoveď:
Toto sú najobľúbenejšie otázky týkajúce sa rozhovoru v jazyku Java týkajúce sa viacvláknovej výroby, ktoré boli položené počas rozhovoru. Vypínací hák je mechanizmus, ktorý sa používa na vyčistenie zdrojov, keď sa JVM vypne normálne alebo náhle.

Q10. Čo je prchavé?

odpoveď:
Volatile je kľúčové slovo v java a môže byť použitý s premennými. Ak je premenná deklarovaná ako prchavá, všetky vlákna prečítajú hodnotu rovnakej premennej z hlavnej pamäte, a nie z vyrovnávacej pamäte, čím zabránia chybám pri čítaní, keď viaceré vlákna používajú rovnakú premennú vo svojich operáciách.

Odporúčané články

Toto bol sprievodca zoznamom otázok týkajúcich sa rozhovoru v jazyku Java a odpovedí na viacvláknové spracovanie, aby mohol uchádzač ľahko vykonať tieto otázky týkajúce sa rozhovorov v jazyku Java na viacvláknovej výrobe. Tu v tomto príspevku sme študovali najčastejšie otázky týkajúce sa rozhovoru v jazyku Java týkajúce sa multithreadingu, ktoré sa často kladú pri rozhovoroch. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Otázky týkajúce sa rozhovoru s dátovou štruktúrou Java
  2. Ľutujeme, Java Interview Otázky
  3. Otázky týkajúce sa viacerých vlákien v jazyku Java
  4. Rozhovory s Java testami

Kategórie: