logo

Koncept vlákna v jazyku Java

Pred zavedením koncept vlákna , nepodarilo sa nám spustiť viac ako jednu úlohu súčasne. Bola to nevýhoda a odstrániť túto nevýhodu, Koncept vlákna bol predstavený.

A Niť je veľmi odľahčený proces, alebo môžeme povedať najmenšia časť procesu, ktorá umožňuje programu pracovať efektívnejšie spustením viacerých úloh súčasne.

java ako prepísať

Na vykonávanie zložitých úloh na pozadí sme použili Koncept vlákna v Jave . Všetky úlohy sa vykonajú bez ovplyvnenia hlavného programu. V programe alebo procese majú všetky vlákna svoju vlastnú samostatnú cestu na vykonanie, takže každé vlákno procesu je nezávislé.

Koncept vlákna v jazyku Java

Ďalšia výhoda použitia niť je, že ak vlákno dostane výnimku alebo chybu v čase svojho vykonávania, neovplyvní to vykonávanie ostatných vlákien. Všetky vlákna zdieľajú spoločnú pamäť a majú svoj vlastný zásobník, lokálne premenné a programové počítadlo. Keď sa paralelne vykonáva viacero vlákien súčasne, tento proces je známy ako Multithreading .

Jednoduchým spôsobom je vlákno:

  • Funkcia, prostredníctvom ktorej môžeme vykonávať viacero činností v rámci jedného procesu.
  • Ľahký proces.
  • Séria vykonaných príkazov.
  • Vnorená sekvencia volaní metód.

Model závitu

Rovnako ako proces, vlákno existuje v niekoľkých stavoch. Tieto stavy sú nasledovné:

Koncept vlákna v jazyku Java

1) Nové (pripravené na spustenie)

Je tam vlákno Nový keď dostane čas CPU.

2) Beh

Je tam vlákno a Beh stav, kedy je v exekúcii.

strojopis dátum čas

3) Pozastavené

Vlákno je v Pozastavené stav, kedy je dočasne neaktívny alebo v exekúcii.

4) Blokované

Vlákno je v Zablokované stav, kedy čaká na zdroje.

5) Ukončené

Vlákno sa dostane do tohto stavu, keď v ľubovoľnom čase okamžite zastaví svoje vykonávanie.

Vytváranie vlákna

Vlákno sa vytvára buď „vytvorením alebo implementáciou“. Spustiteľné rozhranie alebo rozšírením Trieda nití . Toto sú jediné dva spôsoby, ktorými môžeme vytvoriť vlákno.

Poďme sa ponoriť do detailov oboch týchto spôsobov vytvárania vlákna:

Trieda závitov

A Trieda nití má niekoľko metód a konštruktorov, ktoré nám umožňujú vykonávať rôzne operácie s vláknom. Trieda Thread rozširuje Objekt trieda. The Objekt trieda implementuje Spustiteľné rozhranie. Trieda vlákna má nasledujúce konštruktory, ktoré sa používajú na vykonávanie rôznych operácií.

    vlákno() Vlákno (spustiteľné, názov reťazca) Vlákno (spustiteľný cieľ) Vlákno (skupina ThreadGroup, Spustiteľný cieľ, Názov reťazca) Vlákno (skupina ThreadGroup, Spustiteľný cieľ) Vlákno (skupina ThreadGroup, názov reťazca) Vlákno (skupina ThreadGroup, Spustiteľný cieľ, Názov reťazca, Long stackSize)

Spustiteľné rozhranie (metóda run())

Rozhranie Runnable musí byť implementované tou triedou, ktorej inštancie sú určené na spustenie vláknom. Spustiteľné rozhranie nám poskytuje spustiť() metóda na vykonanie akcie pre vlákno.

metóda start().

Metóda sa používa na spustenie vlákna, ktoré sme novo vytvorili. Začne nové vlákno s novým zásobníkom volaní. Po vykonaní začať () metóda, vlákno zmení stav z New na Runnable. Vykonáva sa metóda run(). keď vlákno dostane správny čas na jeho vykonanie.

Zoberme si príklad, aby sme pochopili, ako môžeme vytvoriť a Java vlákno rozšírením triedy Thread:

ThreadExample1.java

 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

Výkon:

Koncept vlákna v jazyku Java

Vytvorenie vlákna implementáciou spustiteľného rozhrania

V Jave môžeme tiež vytvoriť vlákno implementáciou runnable interface. Spustiteľné rozhranie nám poskytuje metódu run() aj metódu start().

Vezmime si príklad, aby sme pochopili, ako môžeme vytvoriť, spustiť a spustiť vlákno pomocou spustiteľného rozhrania.

ThreadExample2.java

programová slučka java
 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

Výkon:

Koncept vlákna v jazyku Java

Vo vyššie uvedenom príklade vykonávame multithreading implementáciou spustiteľného rozhrania. Ak sa chcete dozvedieť viac o multithreadingu, kliknite tu .