Top 40 pitanja i odgovora na intervjuu s više niti (2025.)

Najvažnija pitanja za intervjue o Java višenitnosti

Ovdje su pitanja za intervjue za višenitnost i odgovori za intervjue za brucoše kao i za iskusne kandidate da dobiju posao iz snova.


1) Što je nit?

Nit je istodobna jedinica izvršenja. Možemo reći da je to dio procesa koji se lako može odvijati paralelno s drugim dijelovima procesa.

Besplatno preuzimanje PDF-a: Pitanja i odgovori za višenitni intervju


2) Što je višenitnost?

Višenitnost u Javi je proces izvršavanja dvije ili više niti istovremeno radi maksimalnog iskorištenja CPU-a.

Glavna prednost je:

  • Niti dijele isti adresni prostor
  • Konac ostaje lagan
  • Trošak komunikacije između niti je nizak.

3) Koja su stanja povezana s niti?

  • Spreman
  • Trčanje
  • čekanje
  • Mrtvo stanje

4) Razgovarajte o životnom ciklusu niti?

Životni ciklus niti sličan je životnom ciklusu procesa koji se izvode u operativni sustav. Tijekom svog životnog ciklusa nit se može kretati iz jednog stanja u drugo. Međutim, to ovisi o operaciji koja se na njemu izvodi.


5) Koja su stanja niti?

Slijede različita stanja niti:

Novo: Nit koja je upravo instancirana je u novom stanju. Kada se pozove metoda start(), nit postaje stanje spremnosti. Zatim ga planer niti premješta u stanje koje se može izvoditi.

  • Pokretljivo: Nit koja je spremna za pokretanje
  • Trčanje: Nit koja se izvodi je u stanju izvođenja.
  • Blokiran: Blokirana nit čeka na zaključavanje monitora je u ovom stanju. Ovo se također može dogoditi kada nit izvodi I/O operaciju i prijeđe u sljedeće stanje.
  • Čekanje: To je nit koja čeka drugu nit da izvrši određenu radnju.
  • Vremensko_čekanje: To je nit koja čeka drugu nit za izvođenje.
  • Raskinuto: Nit koja je izašla je u ovom stanju.
Višenitna pitanja za intervju
Višenitna pitanja za intervju

6) Koje su glavne razlike između niti i procesa?

Nit je podskup procesa. Proces može sadržavati više niti. Proces se može odvijati na različitim memorijskim prostorima, ali sve niti dijele isti memorijski prostor.


7) Što je zastoj?

Zastoj je situacija kada nit čeka na zaključavanje objekta, koje je stekla druga nit, a druga nit također čeka na zaključavanje objekta koje je stekla prva nit. Budući da obje niti čekaju jedna drugu da se oslobode, ovo se stanje naziva zastoj.


8) Što je LiveLock?

Livelock se događa kada su sve niti blokirane i ne mogu se izvršiti zbog nedostupnosti potrebnih resursa i nepostojanja nijedne deblokirane niti.

Livelock se može pojaviti u sljedećim uvjetima:

  • Kada se sve niti u programu izvrše na objektu s nula parametara. Program je zaključan uživo i nikada se ne obrađuje dok jedna ili više niti ne pozovu Object.notify() ili Object.notifyAll() na relevantnim objektima.
  • Livelock se također događa kada su sve niti u programu zaglavljene u beskonačnim petljama.
Višenitna pitanja za intervju
Višenitnost

9) Što je monitor?

  • Monitor je tijelo koda koje može izvršiti samo jedna nit u isto vrijeme.
  • Ako bilo koja druga nit pokuša dobiti pristup u isto vrijeme, bit će obustavljena dok trenutna nit ne oslobodi Monitor.

10) Što mislite pod izgladnjivanjem niti?

U situaciji kada dretva nema dovoljno CPU-a za svoje izvođenje dolazi do izgladnjivanja niti.

Međutim, to se može dogoditi u sljedećim scenarijima

  • Niti niskog prioriteta imat će manje CPU-a u usporedbi s nitima visokog prioriteta. Nit nižeg prioriteta može izgladnjeti čekajući da dobije više CPU prostora za izvođenje izračuna.
  • Nit možda beskonačno dugo čeka na zaključavanje monitora objekta, ali notify() može opetovano budi neke druge niti. U tom slučaju i nit nestaje.

11) Koje je značenje zauzetog okretanja u višenitnosti?

Zauzeto okretanje je tehnika koju paralelni programeri koriste kako bi nit čekala pod određenim uvjetima. Ovo se prilično razlikuje od tradicionalnih metoda kao što su wait() i sleep() koje sve uključuju odricanje CPU kontrole. Ova metoda ne zahtijeva napuštanje CPU-a, umjesto toga samo pokreće praznu petlju.


12) Što je prebacivanje konteksta u višenitnosti?

To je proces pohranjivanja i vraćanja stanja procesora. Ovo pomaže da se rezime izvođenje niti iz iste točke u kasnijoj točki u vremenu. To je jedna od bitnih značajki za multitasking operativni sustav i podršku za multi-threaded okruženje.


13) Zašto je ponašanje niti nepredvidivo?

Možemo reći da je ponašanje niti nepredvidivo jer izvođenje niti ovisi o raspoređivaču niti. Treba zapamtiti da svaki planer niti ima drugačiju implementaciju na različitim platformama kao što su Windows, Unix itd.


14) Kako možete pauzirati izvršavanje niti na određeno vrijeme?

sleep () metoda se koristi za pauziranje izvršavanja niti na određeno vrijeme. Međutim, to neće zaustaviti obradu niti na određeno vrijeme. Međutim, kada se nit probudi iz stanja mirovanja, njezino stanje se mijenja u izvodljivo i na temelju rasporeda niti će se izvršiti.


15) Koji su brojni načini na koje nit može ući u stanje čekanja?

Nit može ući u stanje čekanja na sljedeće načine

  • Korištenje metode sleep().
  • Blokiranje na I/O
  • Neuspješan pokušaj zaključavanja objekta
  • Pozivanjem metode wait() objekta

16) Što se događa ako ne poništimo metodu pokretanja?

U Javi, kada pozivamo metodu start() na niti, ona interno poziva metodu run() s novostvorenom niti. Dakle, ako ne poništimo metodu run(), tada se novostvorena nit neće pozvati pa se ništa neće dogoditi.
Primjer:

class MyThread extends Thread {

//don't override run() method

}
public class DontOverrideRun {

public static void main(String[] args) {

System.out.println("main has started.");

MyThread thread1=new MyThread();

thread1.start();

System.out.println("main has ended.");
}

}

17) Koja je glavna razlika između metoda Thread.start() i Thread?run()?

Metoda Thread.start() (izvorna metoda) klase Thread obavlja posao pokretanja metode Thread.A run() u niti. Dakle, ako izravno pozovemo Thread. Metoda run() također se izvodi u istoj niti. Stoga nikada neće riješiti svrhu stvaranja nove niti.


18) Kako stvoriti nit u Javi?

Postoje dvije metode za stvaranje niti u Javi.

  • Prvo implementacijom Runnable sučelja, a zatim iz njega stvorite objekt niti.
  • Druga metoda je proširenje klase niti.

19) Što znači Prioritet niti?

Svaka nit ima prioritet. Međutim, viši prioritet također ima prednost u izvršenju. Međutim, to također ovisi o implementaciji Thread Scheduler-a koja ovisi o OS-u. Moguće je promijeniti prioritet niti, ali to ne daje sigurnost da će se nit višeg prioriteta izvršiti prva.


20) Što radi metoda join()?

Metoda join() čeka da nit umre. Prisiljava sve pokrenute niti da prestanu s izvođenjem do trenutka kada se nit pridruži da dovrši svoj posao.


21) Što je Java Shutdown Hook?

Java shutdown hook se koristi za čišćenje resursa kada se JVM isključi. Čisti resursi znače zatvaranje log datoteke, slanje nekih upozorenja ili nešto treće. Shutdown hook treba koristiti za izvršavanje koda prije nego što se JVM isključi.


22) Koje su dvije glavne upotrebe volatile u Javi?

Niti smiju držati vrijednosti varijabli u lokalnoj memoriji. Ako je varijabla označena kao nepostojana, svaki put kada se ista varijabla koristi, mora se pročitati iz glavne memorije.

Na isti način, svaki put kada se varijabla zapisuje, vrijednost mora biti pohranjena u glavnoj memoriji.


23) Kako možete dijeliti podatke između dvije niti u Javi?

Podatke između niti možemo dobiti koristeći zajednički objekt ili istovremeno struktura podataka poput BlockingQueue. Implementira obrazac proizvođač-potrošač koristeći metode čekanja i obavijesti. Također uključuje dijeljenje objekata između dvije niti.


24) Kako se više niti može kontrolirati istovremeno?

Više niti se može istovremeno kontrolirati ako su stvorene u objektu ThreadGroup.


25) Što je metoda blokiranja u Javi?

U Javi metoda blokiranja je metoda koja blokira dok se zadatak ne izvrši. Na primjer, accept () metoda ServerSocket blokira dok se klijent ne poveže. Ovdje se blokiranje odnosi na sve nad čime se kontrola neće vratiti pozivatelju dok zadatak ne završi.


26) Koja je glavna razlika između metode čekanja () i mirovanja ()?

Čekati() Spavati()
Ova metoda definirana je u klasi Object Metoda je definirana u klasi Thread
Metoda Wait() oslobađa zaključavanje Ova metoda nikada ne otključava bravu.

27) Što je nepromjenjivi objekt? Kako može pomoći u pisanju istodobne aplikacije?

Svaki se objekt može smatrati neupitnim ako se njegovo stanje ne promijeni nakon što je izgrađen. Nepromjenjivi objekti koriste se u stvaranju jednostavnih, pouzdanih i konkurentnih aplikacija.

Za stvaranje nepromjenjivog objekta važno je klasu i njezinog člana učiniti konačnima tako da se nakon što se objekti stvore, njihovo stanje ne mijenja.


28) Recite mi razliku između popuštanja i spavanja?

Kada zadatak pozove svoju metodu yield(), vraća se u stanje spremnosti.

Kada zadatak pozove svoju metodu sleep(), vraća se u stanje čekanja.


29) Što je ThreadPool?

ThreadPool je skup niti koji ponovno koristi fiksni broj niti za izvršavanje određenog zadatka.


30) Čemu služi sinkronizirana ključna riječ?

Sinkronizirana ključna riječ može se primijeniti na statičku ili nestatičku metodu. Korištenjem Synchronized samo jedna nit može pristupiti sinkroniziranim metodama. Međutim, u situaciji kada postoji više niti koje pokušavaju pristupiti istoj metodi. U to vrijeme druge niti moraju čekati izvršnu nit. Također osigurava zaključavanje objekta kako bi se spriječilo stanje utrke.

public void synchronized method1(){}

public void synchronized staticmethod1(){}

public void myMethod(){

synchronized (this){

//synchronized keyword on block of code

}

}

31) Što je nepostojana ključna riječ?

Volatile ključna riječ je kvalifikator koji se primjenjuje na varijablu kada je deklarirana. Saopćava kompajleru da se vrijednost varijable može promijeniti u bilo kojem trenutku – bez da kod poduzima bilo kakvu akciju.


32) Koje su glavne razlike između notify i notifyAll u Javi?

Notify () metoda ne pruža nikakav način odabira određene niti, zato je korisna samo kada jedan While notifyAll() šalje obavijest svim nitima. Također im omogućuje da se natječu za brave. Također osigurava da će barem jedna nit nastaviti dalje.


33) Koji JVM parametar se koristi za kontrolu veličine hrpe niti?

Za kontrolu veličine hrpe niti u Javi koristi se Xss parametar.


34) Možete li pokrenuti nit dva puta u Javi?

Ne, jednom kada se nit pokrene, ne može se pokrenuti drugi put.


35) Koja je svrha korištenja metode prinosa klase niti?

Metoda prinosa najjednostavniji je način da se od trenutne niti zatraži da se odrekne CPU-a kako bi ta druga nit. To je statična metoda i samo jamči da će trenutna nit prepustiti CPU, ali ne govori ništa o tome koja druga nit također utječe na CPU.


36) Kada možemo reći da niti nisu lagani proces u Javi?

Niti nisu lagani procesi kada se niti istog procesa izvode istovremeno. Iako, ako se niti različitih procesa izvode istovremeno u to vrijeme, niti postaju težak proces.


37) Je li moguće sinkronizirati konstruktor Java klase?

Kao Java standard, konstruktori se ne mogu sinkronizirati jer druge niti ne mogu vidjeti objekt prije nego što ga proces stvaranja niti završi. Nema potrebe da se Java Objects konstruktor sinkronizira jer bi zaključao objekt koji se konstruira.


38) Što je prolazna varijabla?

Prolazna varijabla je varijabla koja se ne može serijalizirati tijekom serijalizacije. Inicijalizira se na zadanu vrijednost tijekom serijalizacije.

Ova pitanja za intervju također će vam pomoći u vašem životu

Podijeli

4 Komentari

  1. Avatar java obuka kaže:

    Zdravo, ja
    stvarno mi pomaže. tijekom pripreme intervjua.
    Zaista je pohvalno napisati ovaj članak i pružiti ove informacije.
    Za pohvalu

  2. Avatar Shwethashree Venkatesh kaže:

    5) Koja su stanja niti?
    Runnable nije Running stanje. Spremno je za rad

    1. ažurirano! Hvala što ste ovo istaknuli

    2. Avatar Amuda Adeolu Badmus kaže:

      1. Stanja koja se mogu izvoditi promatraju se kao dvosloj na razini OS-a

      2. Gotovo svi programski jezici vide nit kao izvodljivu ili NE.

      3. Nit koja se može izvoditi može biti u stanju (spreman ili pokrenut).

      4. Mogli biste imati dvije niti u stanju pokretanja, ali samo će jedna nit postojati u stanju "izvršenja",
      dok druga nit postoji u "pokrenutom" stanju.

Ostavi odgovor

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena *