Introduzione Java Intervista Domande e risposte sul multithreading

Prima di procedere alle domande di intervista Java sul multithreading, discutiamo qualcosa su alcuni fatti relativi al multithreading.

# 1 - Quindi dovremmo sapere prima qual è il thread?

È la più piccola unità di elaborazione di un particolare lavoro che si chiama thread. È di natura leggera, quindi facile da usare. Ora ci viene in mente che per cui dovremmo averne bisogno, il multithreading viene utilizzato per realizzare il multitasking. Il multitasking potrebbe essere realizzato anche in un altro modo ed è noto come Multiprocessing.

Tuttavia, il multithreading è più popolare ed è efficiente da utilizzare rispetto al multiprocessing poiché i thread hanno proprietà che utilizza un'area di memoria condivisa mentre in caso di multi-processo consuma molta memoria e altre risorse che non sono efficienti.

Quindi il processo di esecuzione di più thread contemporaneamente per eseguire alcune operazioni viene chiamato multithreading.

Alcuni vantaggi dell'utilizzo del multithreading:

  • I thread funzionano in modo indipendente, quindi è indipendente da altre operazioni in corso nei sistemi e quindi è possibile eseguire più operazioni contemporaneamente.
  • Il consumo di tempo è inferiore con l'uso del multithreading poiché molte operazioni possono essere eseguite contemporaneamente.
  • I thread sono indipendenti come già discusso, quindi si verifica un'eccezione in un singolo thread che non interferirà con le operazioni di altri thread.
  • Il costo delle comunicazioni tra due thread è basso.

Possiamo ottenere il multitasking nei due modi seguenti:

  • Multitasking basato sul processo (multiprocessing)
  • Multitasking basato su thread (multithreading)

NOTA: mentre discutiamo del multithreading, ci concentreremo sul multitasking basato su thread.

Ciclo di vita di una discussione:

  • Nuovo
  • Runnable
  • In esecuzione
  • Non eseguibile (bloccato)
  • terminato

NOTA: per riferimento e una migliore comprensione, esaminare attentamente l'immagine seguente.

# 2 - Come vengono creati i thread?

Ora, questo è il primo e più importante punto in cui possiamo creare il thread. Esistono due modi in cui è possibile creare thread che sono discussi di seguito:

  • Estendendo la classe Thread
  • Implementando l'interfaccia Runnable

NOTA:

Quando è stato creato un nuovo thread, vengono eseguite le seguenti attività:

  1. In un nuovo stack di chiamate, verrà creato un thread.
  2. Il thread cambia il suo stato da Nuovo a Runnable.
  3. Quando il thread verrà avviato, trova il metodo run () e quindi verrà eseguito.

ESEMPIO:

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

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

NOTA: tenere presente la differenza nei due esempi precedenti. La differenza principale nei due esempi precedenti è che se non estendiamo Thread piuttosto proviamo a creare Thread implementando l'interfaccia Runnable e classificando il metodo start () per avviare il Thread, allora il Tread non verrà creato in un nuovo stack di chiamate poiché non verrà identificato come thread.

Quindi per farlo identificare come Thread dobbiamo passare l'istanza della Classe in cui abbiamo implementato l'interfaccia Runnable come argomento per il costruttore della classe Thread e quindi dobbiamo chiamare il metodo start ().

Programmazione in discussione:

Come tutti sanno, quel programma significa fare un piano un'attività in un determinato momento.

La pianificazione dei thread è un meccanismo simile di pianificazione di un thread specifico che mantiene alcuni protocolli. Esistono due modi diversi con cui la pianificazione dei thread funziona in Java.

  • Pianificazione preventiva
  • Time Slicing.

Pianificazione preventiva:

JMV decide l'attività con la priorità più alta e avvia l'esecuzione fino a quando non entra negli stati di attesa o morti o non viene creata un'attività con priorità più alta.

Time Slicing:

JVM inizia a eseguire un thread specifico per un periodo di tempo specifico, quindi sposta lo stesso thread nel pool e sceglie altri thread in base alla priorità e ad altri fattori per le esecuzioni. Questo processo continua fino a quando tutto il thread termina il suo processo.

Ora, se stai cercando un lavoro correlato al multithreading Java, allora devi prepararti per le domande di intervista Java 2018 sul multithreading. È vero che ogni colloquio è diverso secondo i diversi profili professionali. Qui, abbiamo preparato le importanti domande di intervista Java e le risposte sul multithreading che ti aiuteranno ad avere successo nel tuo colloquio.

In questo articolo 2018 sulle domande di intervista Java sul multithreading, presenteremo le 10 domande di intervista Java più importanti e più frequenti sul multithreading. Queste domande di intervista sono divise in due parti:

Parte 1 - Domande di intervista Java sul multithreading (di base)

Questa prima parte tratta le domande di base dell'intervista Java e le risposte sul multithreading.

Q1. Differenzia tra processo e thread?

Risposta:
Un processo è un programma o un'applicazione mentre Thread è una singola attività da eseguire all'interno di un processo. Il filo è leggero mentre il processo è pesante. Il thread richiede meno, mentre il processo richiede più risorse, quindi viene definito di natura fortemente ponderata.

Q2. Distingue tra thread utente e thread demone?

Risposta:
Un thread creato in Java è definito come thread utente. Un thread demone viene sempre eseguito in background e il suo ciclo di vita completo dipende dal thread principale. Un thread demone in esecuzione in background non impedisce a JVM di terminarlo. Il thread figlio creato da un thread daemon sarà anche un thread daemon.

Passiamo alle prossime domande di intervista Java sul multithreading.

Q3. Il modo diverso di creare un thread in Java?

Risposta:
I thread in Java possono essere creati in due modi:

  • Estendendo la classe thread.
  • Implementando Runnable Interface.

Q4. Qual è il ciclo di vita di Thread?

Risposta:
Queste sono le domande comuni sull'intervista di Java sul multithreading poste in un'intervista. Di seguito sono riportati il ​​ciclo di vita di un thread:

  • Nuovo
  • Runnable.
  • In esecuzione.
  • Bloccato.
  • Terminato.

Q5. Cosa succede se chiamiamo il metodo run () di una classe Thread?

Risposta:
Chiamare direttamente il metodo run () compilerà ed eseguirà correttamente il programma ma lo stesso programma non verrà trattato come Thread perché non verrà creato alcun nuovo stack di chiamate e il programma inizierà la sua esecuzione nello stesso stack di chiamate in cui è in esecuzione il main.

Per creare Thread che dovrebbe essere eseguito con un nuovo stack di chiamate, è necessario utilizzare il metodo start () della classe Thread.

Parte 2 - Domande di intervista Java sul multithreading (avanzate)

Diamo ora un'occhiata alle avanzate domande e risposte sull'intervista Java sul multithreading.

Q6. Possiamo mettere in pausa l'esecuzione di un thread in un momento specifico?

Risposta:
Sì, questo può essere ottenuto in java chiamando sleep () della classe Thread. Il metodo Sleep () accetta anche un argomento che indica il tempo in millisecondi.

Q7. Come possiamo ottenere la pianificazione del thread in Java?

Risposta:
Sì, la pianificazione dei thread in Java è possibile. I thread in Java possono essere programmati in due modi: Time Slicing e Pre-Emptive Scheduling.

Passiamo alle prossime domande di intervista Java sul multithreading.

Q8. È possibile avviare una discussione due volte?

Risposta:
No, un thread non può essere avviato due volte. Se proviamo ad avviare un thread due volte, verrà generato "java.lang.IllegalThreadStateException".

Q9. Che cos'è l'hook di arresto in Java?

Risposta:
Queste sono le domande più frequenti sull'intervista Java sul multithreading poste in un'intervista. Un hook di arresto è un meccanismo che viene utilizzato per ripulire le risorse quando JVM si spegne normalmente o bruscamente.

Q10. Cosa è volatile?

Risposta:
Volatile è una parola chiave in Java e può essere utilizzata con variabili. Se una variabile viene dichiarata come volatile, tutti i thread leggeranno il valore della stessa variabile dalla memoria principale anziché dalla cache, impedendo così la lettura degli errori quando più thread usano la stessa variabile nelle loro operazioni.

Articoli consigliati

Questa è stata una guida all'elenco delle domande e risposte sull'intervista Java sul multithreading in modo che il candidato possa facilmente reprimere queste domande sull'intervista Java sul multithreading. Qui in questo post, abbiamo studiato le principali domande di intervista Java sul multithreading, che spesso vengono poste nelle interviste. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Struttura dei dati Domande di intervista Java
  2. Oops Domande sull'intervista Java
  3. Domande di intervista multithreading in Java
  4. Domande di intervista per i test Java