Le 10 principali domande di intervista al multithreading in Java (Aggiornamento per il 2019)

Sommario:

Anonim

Introduzione al Multithreading Intervista Domande e risposte in Java

In Java, il multithreading è definito come il processo di esecuzione di due o più o più thread contemporaneamente. Viene utilizzato per rendere il processo più veloce e in base alla capacità del sistema. Viene utilizzato per elaborare le unità più piccole in parallelo per ottenere rapidamente le cose e velocizzare il processo. Aiuta a risparmiare spazio e tempo in memoria. Viene utilizzato principalmente per animazioni, giochi e applicazioni di grandi dimensioni.

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

In questo articolo di domande di intervista sul multithreading del 2019 in Java, presenteremo le 10 domande di intervista sul multithreading più importanti e poste di frequente a java. Queste domande di intervista sono divise in due parti:

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

Questa prima parte tratta le domande e le risposte di base per le interviste sul multithreading in Java.

Q1. Spiegare i diversi stati di Thread?

Risposta:
Gli stati del thread sono anche indicati come Ciclo di vita di un thread. Di seguito sono riportati i diversi stati della discussione:

  • Nuovo: significa che il thread è nel nuovo stato e deve creare l'istanza della classe thread prima di invocare il metodo start.
  • Eseguibile: dopo aver richiamato il metodo start, il thread è in stato eseguibile e lo scheduler non lo ha selezionato per l'esecuzione del thread.
  • In esecuzione: quando lo schedulatore è selezionato, è in esecuzione.
  • Bloccato: noto anche come non eseguibile. Quando il thread non è idoneo per l'esecuzione ma il thread è ancora attivo.
  • Terminato: questo è lo stato in cui esce dal metodo di esecuzione o in stato morto.

Q2. Qual è il thread in Java?

Risposta:
Il thread si riferisce a una piccola unità che impiega meno tempo per eseguirla. Principalmente indipendente dal percorso di esecuzione. È uno dei modi per sfruttare più CPU disponibili nella macchina. Con l'aiuto di più thread, il processo dell'attività della CPU diventa più veloce. Java viene principalmente utilizzato per fornire supporto al multithreading.

Passiamo alle prossime domande di intervista multithreading in Java.

Q3. Spiegare la differenza tra thread e processo in JAVA?

Risposta:
Il thread è il più piccolo compito di esecuzione all'interno del processo. Il processo è un ambiente di esecuzione autonomo con più di un thread o più thread. I thread sono la suddivisione del processo. Il thread sta avendo accesso diretto al segmento di dati del processo mentre il processo sta avendo la propria copia del segmento di dati. Il thread ha principalmente condiviso l'indirizzo creato dal processo e il processo ha il proprio indirizzo. Il thread può essere facilmente creato e la creazione del processo richiede molte cose da fare. Il thread può comunicare facilmente con altri thread mentre il processo può comunicare facilmente con il processo figlio ma la comunicazione tra processi è difficile. Il thread ha il proprio stack mentre il processo condivide le risorse di memoria come la memoria dell'heap ecc. Nel thread, se sono state apportate modifiche, influirà su tutti i thread ma nel processo non influirà su altri processi.

Q4. Spiegare sul modello di memoria Java?

Risposta:
Queste sono le domande di intervista multithreading comuni in Java poste in un'intervista. Diverse responsabilità devono normalmente seguire un tester multithreading nell'attuale settore IT.

Il modello di memoria Java sta avendo un certo insieme di regole da seguire affinché i programmi Java si comportino in un certo modo in tutta l'architettura di memoria multipla, la CPU e il sistema operativo che svolge un ruolo importante nel multithreading. Il modello di memoria Java aiuta a distinguere le modifiche apportate in uno dei thread e tali modifiche dovrebbero essere visibili anche ad altri thread. In questo modello, esiste una regola di ordine del programma, che dice che ogni azione nel thread avviene prima di ogni azione nel thread che viene successivamente nell'ordine del programma.

Q5. Spiegare l'uso della variabile volatile nel multithreading Java?

Risposta:
La parola chiave o la variabile volatile viene utilizzata per garantire che le variabili condivise o di istanza vengano costantemente aggiornate ogni volta che vengono apportate modifiche da più thread. È un modificatore speciale che può essere utilizzato solo con variabili di istanza. Questa parola chiave non può essere utilizzata con i metodi. Se il campo in Java è dichiarato volatile, il modello di memoria Java garantisce che tutti i thread debbano avere un valore coerente per quella variabile. Il valore della variabile volatile verrà sempre letto dalla memoria principale. Riduce inoltre il rischio di errori di coerenza della memoria. La variabile volatile Java che è un riferimento a un oggetto può essere nulla. La parola chiave volatile deve essere utilizzata se la variabile viene utilizzata su più thread.

Parte 2 - Domande di intervista multithreading in Java (Avanzate)

Diamo ora un'occhiata alle domande e risposte di intervista multithreading avanzate in Java.

Q6. Spiegare le condizioni di gara nei thread?

Risposta:
La condizione di gara si è verificata quando c'è una corsa tra più thread. Questa condizione di gara è principalmente causata da errori di programmazione o errori. Il thread che deve essere eseguito in un primo momento ha perso la corsa e quindi eseguito il secondo e alcuni cambiamenti nel comportamento del codice che si riferiva a bug non deterministici. Diventa uno dei bug difficili da scoprire e riprodurre a causa della natura casuale dei thread.

Q7. Spiegare il framework fork-join in Java?

Risposta:
Il framework fork-join è stato introdotto in JDK7. È uno strumento potente per gli sviluppatori Java per sfruttare i molteplici processori dei server mondiali di oggi. È stato progettato principalmente per lavori che possono essere divisi in pezzi più piccoli. L'obiettivo principale è utilizzare la potenza di elaborazione disponibile per aumentare le prestazioni dell'applicazione. Usava principalmente l'algoritmo per rubare il lavoro.

Passiamo alle prossime domande di intervista multithreading in Java.

Q8. Spiegare il pool di thread e il suo utilizzo in Java?

Risposta:
Il pool di thread è noto come pool di thread. Il thread viene generalmente chiamato come thread di lavoro. La creazione di un thread è costosa in molti termini come tempo e risorse. Quando si crea il thread al momento della richiesta del processo, generalmente rallenta il tempo di risposta del processore e può essere creato solo un limite in un numero di thread. Pertanto, a causa di questi due problemi principali, è stato creato il pool di thread. In Java, l'API Java ci consente di creare diversi tipi di pool di thread come un singolo pool di thread, che richiedono solo un processo alla volta. L'altro è un pool di thread fisso che accetta un numero fisso di thread. Quindi c'è un pool di thread nella cache che è pool di thread espandibile e adatto principalmente per applicazioni per molte attività.

Q9. Come possono essere condivisi i dati tra il thread?

Risposta:
Questa è la più popolare Domande di intervista multithreading in Java poste in un'intervista. Alcuni casi di test diffusi nell'attuale settore IT.

I dati possono essere condivisi tra thread con l'aiuto dell'uso dell'oggetto condiviso o della struttura di dati simultanei come la coda di blocco. Segue principalmente il modello produttore-consumatore utilizzando wait e notifica i metodi che prevedono la condivisione di oggetti tra i due thread.

Q10. Come thread distribuiti nella memoria dello stack e heap?

Risposta:
In Java, ogni thread ha il proprio stack che viene utilizzato per memorizzare variabili locali, parametro del metodo e stack di chiamate. La memoria heap è memoria comune che viene condivisa da tutti i thread.

Articoli consigliati

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

  1. Domande di intervista multithreading
  2. Domande di intervista con servlet Java
  3. Domande di intervista su JSP
  4. Domande di intervista a QlikView
  5. Guida alle domande di intervista Servlet