Questo articolo presenta una guida completa di Multithreading in Java e per una profonda comprensione, coprirà i seguenti concetti:
Quindi iniziamo!
Cosa è multithreading
È un processo che ci consente di eseguire almeno due thread contemporaneamente ed è anche definito concorrenza in Java. Java MultithReading massimizza l'utilizzo della CPU mentre esegue ogni thread in parallelo. Inoltre, risparmia la memoria come in multithreading non è necessario allocare la memoria separata a più thread.
Perché il multithreading è importante in Java
MultithReading fornisce una vasta gamma di funzionalità e il significato di Java MultithReading può essere valutato dalle caratteristiche sotto l'elenco:
Solo alcune funzionalità sono elencate qui, tuttavia, ci sono molte altre come scalabilità, efficacia in termini di costi, ecc. che mostrano il dominio del multithreading.
Ciclo di vita dei fili in java
A partire da ora, abbiamo imparato cosa è multithreading e perché è così importante in Java? Ora impareremo a conoscere il ciclo di vita del thread che è composto da vari stati elencati di seguito:
Nuovo: In questo stato, un thread viene avviato/creato usando il "Filo" classe o "Runnable" interfaccia. Rimane all'interno di questo stato fino a quando un programma non avvia/avvia un thread.
Runnable: All'interno di questo stato, l'istanza del thread verrà invocata utilizzando un metodo integrato Start () e il thread rimane nello stato eseguibile fino a quando un'attività non viene eseguita.
Corsa: In questo stato, un thread avvia l'esecuzione.
In attesa: All'interno di questa fase, il thread va in uno stato temporaneamente inattivo, il che significa che un thread dorme, aspetta o in uno stato bloccato.
Terminato/morto: Un thread entra in questo stato quando si verifica un'eccezione o se il thread completa la propria esecuzione/elaborazione.
Metodi Build-in Java per Multithreading
Esiste un elenco di metodi predefiniti Java che possono essere utilizzati all'interno dei thread per ottenere funzionalità diverse. Alcuni metodi usati di frequente sono elencati nella tabella seguente:
Nome metodo | Descrizione |
---|---|
inizio() | Viene utilizzato per iniziare l'esecuzione del thread. |
correre() | esegue un'azione specifica per un thread. |
getName () | Restituisce il nome del thread. |
prodotto () | Arresta il thread corrente e consente ad altri di eseguire. |
SetPriority (int newPriority) | Specifica la priorità del thread. |
getPriority () | Restituisce la priorità del thread. |
Sonno (int millisecondi) | Dorma il filo per un periodo di tempo specificato. |
getID () | Restituisce l'ID del thread. |
Implementazione pratica del multithreading in Java
Ora, è tempo di capire il concetto di Java Multithreading usando l'implementazione pratica. Quindi, considereremo un esempio in cui eseguiremo multithreading e utilizzeremo alcuni dei metodi integrati sopra menzionati.
Esempio
In questo esempio eseguiremo il multithreading implementando l'interfaccia runnable:
Classe pubblica MultithReadingexample Implements RunnableNello snippet di codice sopra, implementiamo l'interfaccia java runnable e all'interno della classe utilizziamo il @Oltrepassare annotazione che mostra che il "Multithreadingexample" sta preparando il correre() Metodo di interfaccia eseguibile. Successivamente, creiamo più thread e iniziamo l'esecuzione del thread usando il inizio() metodo. Infine, otteniamo i nomi del thread usando il getName () Metodo e stamparli come mostrato nello snippet seguente:
Questo verifica il funzionamento di multi-thread in Java.
Nell'esempio sopra, eseguiamo il multithreading implementando Runnable interfaccia. Tuttavia possiamo anche eseguire multithreading estendendo un predefinito Filo Classe come mostrato nel seguente frammento:
Classe pubblica MultithReadingExample estende il threadEstendendo la classe thread è possibile avvalersi delle funzionalità dei metodi Java predefiniti.
Conclusione
Il multithreading consente l'esecuzione simultanea di due o più thread che massimizza l'utilizzo della CPU, risparmia tempo, memoria, ecc. Il multithreading può essere eseguito estendendo o implementando rispettivamente la classe thread o l'interfaccia eseguibile. Vari metodi integrati di classe thread e interfaccia RUNNABLE possono essere utilizzati in MultithReading per eseguire funzionalità diverse come l'arresto del thread corrente e consentire l'esecuzione di altri thread, specificando la priorità ai thread e così via.
Questo articolo spiega diversi aspetti del multithreading come ciò che è multithreading, la sua importanza, il ciclo di vita, i metodi e l'implementazione pratica.