Differenza tra Runnable e Thread

Differenza chiave - eseguibile vs Thread
 

Un programma in esecuzione è noto come processo. Il processo può essere suddiviso in più sottoprocessi. Ad esempio, Microsoft Word è un processo. Allo stesso tempo, controlla l'errore di ortografia e la grammatica. Questo è un sottoprocesso. Questi sottoprocessi sono noti come thread. Il multithreading è il processo di esecuzione di più thread contemporaneamente. Le applicazioni con thread possono essere compilate utilizzando diversi linguaggi di programmazione. Runnable e Thread sono associati alla programmazione Java. Esistono due metodi in Java per creare un thread implementando un'interfaccia Runnable o estendendo la classe Thread. Quando si implementa Runnable, molti thread possono condividere lo stesso oggetto thread mentre nella classe Extending Thread, a ciascun thread è associato un oggetto univoco. Questo è il differenza fondamentale tra Runnable e Thread.

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è Runnable
3. Cos'è il filo
4. Somiglianze tra Runnable e Thread
5. Confronto fianco a fianco - Runnable vs Thread in Tabular Form
6. Sommario

Cos'è Runnable?

Un thread attraversa alcuni stati. Il "nuovo" è l'inizio del ciclo di vita del filo. Dopo che il metodo start () chiama su un nuovo thread, diventa eseguibile. Se lo scheduler del thread seleziona il thread, passa allo stato di esecuzione. Il thread è in attesa dello stato se quel thread è in attesa di un altro thread per eseguire un'attività. Dopo che il thread ha completato il lavoro, passa allo stato di terminazione.

Un thread può essere implementato utilizzando l'interfaccia Runnable. Fare riferimento al programma seguente.

Figura 01: Programma Java per creare un thread utilizzando l'interfaccia Runnable

Secondo il programma di cui sopra, la classe Runnable Demo implementa l'interfaccia Runnable. Il metodo run () si trova all'interno della classe che implementa l'interfaccia Runnable. È il punto di ingresso per il thread. La logica è nel metodo run (). Nel programma principale, un thread viene creato definendo un oggetto che viene istanziato dalla classe Runnable Demo. È t1. Il metodo start () è chiamato usando t1.

Fare riferimento al programma seguente.

Figura 02: programma Java per creare un thread per eseguire un ciclo, implementando l'interfaccia Runnable

Secondo l'esempio precedente, la classe Runnable Demo implementa l'interfaccia Runnable. La logica da eseguire usando il thread è scritta nel metodo run (). Nel programma principale, un thread viene creato definendo un oggetto che viene istanziato dalla classe Runnable Demo. È t1. Quindi, il metodo start () viene chiamato usando t1.

Cos'è il filo?

L'altro metodo per creare un thread è l'estensione della classe Thread. Consiste di tre passaggi. Il primo è dichiarare la classe come estensione della classe Thread. Successivamente, dovrebbe essere scritto il metodo run (). Ha la sequenza di passaggi che il thread dovrebbe eseguire. Infine, viene creato l'oggetto thread e viene chiamato il metodo start () per avviare l'esecuzione del thread. Fare riferimento al programma seguente.

Figura 03: programma Java che estende la classe Thread

Secondo il programma precedente, la classe MyThread estende la classe Thread. Sostituisce il metodo di esecuzione. Il metodo run () contiene la logica che deve essere eseguita dal thread. È il punto di ingresso alla discussione. Quindi viene creato l'oggetto thread. È thread1. Il thread viene avviato utilizzando il metodo start (). Eseguirà un metodo call to run ().

Un esempio di programma di due classi che estende la classe Thread è il seguente.

Figura 04: programma Java con due classi che estendono la classe Thread

Secondo il programma di cui sopra, entrambe le classi A e B stanno estendendo la classe Thread. Entrambe le classi hanno la loro implementazione del metodo run (). Il thread principale è quello che esegue il metodo main (). Prima che il thread principale muoia, crea e avvia thread1 e thread2. Nel momento in cui il thread principale ha raggiunto la fine del metodo principale, tre thread sono in esecuzione in parallelo. Non esiste un ordine specifico in cui i thread danno l'output. Una volta avviato il thread è difficile decidere l'ordine che eseguiranno. Corrono indipendentemente.

Quali sono le somiglianze tra eseguibile e discussione?

  • Entrambi stanno usando per creare un thread in Java.

Qual è la differenza tra Runnable e Thread?

Runnable vs Thread

Runnable è un'interfaccia in Java per creare un thread che consente a molti thread di condividere lo stesso oggetto thread. Il thread è una classe in Java per creare un thread in cui ad ogni thread è associato un oggetto univoco.
 Memoria
In Runnable, più thread condividono lo stesso oggetto, quindi richiedono meno memoria. Nella classe Thread, ogni thread crea un oggetto unico, quindi richiede più memoria.
Estendere la capacità
Dopo aver implementato l'interfaccia Runnable, può estendere una classe. Le ereditarietà multiple non sono supportate in Java. Dopo aver esteso la classe Thread, non può estendere nessun'altra classe.
 Manutenibilità del codice
L'interfaccia eseguibile rende il codice più gestibile. Nella classe Thread, il mantenimento richiede molto tempo.

Sommario - eseguibile vs Thread 

Un processo è suddiviso in più sottoprocessi per eseguire più attività contemporaneamente. Questi sottoprocessi sono noti come thread. L'istanziazione di un thread può essere eseguita implementando l'interfaccia Runnable o estendendo la Thread Class. È facile estendere la classe Thread, ma non è una pratica di programmazione orientata agli oggetti. Quando si implementa Runnable, molti thread possono condividere lo stesso oggetto thread mentre estendendo la classe Thread ogni thread ha un oggetto univoco associato ad esso. Questa è la differenza tra Runnable e Thread. Nella classe Thread, la creazione di più oggetti può consumare più memoria.

Scarica il PDF di Runnable vs Thread

È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui Differenza tra Runnable e Thread

Riferimento:

1.tutorialspoint.com. "Java Multithreading". Il punto, Disponibile qui 
2.Pramodbablad. "Estende gli strumenti di Thread V eseguibili in Java." Java Concept Of The Day, 11 novembre 2016. Disponibile qui
3. Modi per creare una discussione in multithreading Java | Core Java Tutorial | Studytonight. Disponibile qui