Pred uvedbo koncept niti , nismo mogli izvajati več kot ene naloge hkrati. To je bila pomanjkljivost in da bi to pomanjkljivost odstranili, Koncept niti je bil predstavljen.
A nit je zelo lahek proces ali lahko rečemo, da je najmanjši del procesa, ki programu omogoča učinkovitejše delovanje z izvajanjem več nalog hkrati.
math pow java
Za izvajanje zapletenih nalog v ozadju smo uporabili Koncept niti v Javi . Vse naloge se izvajajo brez vpliva na glavni program. V programu ali procesu imajo vse niti svojo ločeno pot za izvajanje, zato je vsaka nit procesa neodvisna.
Še ena prednost uporabe nit je, da če nit dobi izjemo ali napako v času svojega izvajanja, to ne vpliva na izvajanje drugih niti. Vse niti si delijo skupni pomnilnik in imajo svoj sklad, lokalne spremenljivke in programski števec. Ko se več niti izvaja vzporedno hkrati, je ta proces znan kot Večnitnost .
Na preprost način je nit:
- Funkcija, prek katere lahko izvajamo več dejavnosti znotraj enega procesa.
- Lahek postopek.
- Niz izvedenih stavkov.
- Ugnezdeno zaporedje klicev metod.
Model navoja
Tako kot proces tudi nit obstaja v več stanjih. Ta stanja so naslednja:
1) Novo (pripravljeno za uporabo)
Nit je notri Novo ko dobi procesorski čas.
2) Tek
Nit je notri a Tek navesti, kdaj je v izvršbi.
3) Prekinjeno
Nit je v Prekinjeno stanje, ko je začasno neaktiven ali v izvajanju.
4) Blokirano
Nit je v blokiran stanje, ko čaka na vire.
5) Prekinjeno
Nit pride v to stanje, ko v danem trenutku takoj ustavi svoje izvajanje.
Ustvarjanje niti
Nit je ustvarjena z 'ustvarjanjem ali implementacijo' Zagonski vmesnik ali s podaljšanjem Razred niti . To sta edina načina, na katera lahko ustvarimo nit.
Poglobimo se v podrobnosti obeh načinov ustvarjanja niti:
komponente robota
Razred niti
A Razred niti ima več metod in konstruktorjev, ki nam omogočajo izvajanje različnih operacij na niti. Razred Thread razširja Objekt razred. The Objekt razred izvaja Izvedljivo vmesnik. Razred niti ima naslednje konstruktorje, ki se uporabljajo za izvajanje različnih operacij.
Zagonski vmesnik (metoda run())
Vmesnik Runnable mora implementirati tisti razred, katerega primerke naj bi izvajala nit. Zagonski vmesnik nam daje teči() metoda za izvedbo dejanja za nit.
metoda start().
Metoda se uporablja za zagon niti, ki smo jo na novo ustvarili. Začne novo nit z novim nizom klicev. Po izvedbi začetek() nit spremeni stanje iz New v Runnable. Izvršuje metoda run(). ko nit dobi pravi čas za izvedbo.
Vzemimo primer, da razumemo, kako lahko ustvarimo a Java nit z razširitvijo razreda 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(); } }
Izhod:
Ustvarjanje niti z implementacijo zagonskega vmesnika
V Javi lahko ustvarimo nit tudi z implementacijo zagonskega vmesnika. Runable vmesnik nam nudi metodo run() in metodo start().
Vzemimo primer, da razumemo, kako lahko ustvarimo, zaženemo in zaženemo nit z zagonskim vmesnikom.
počisti predpomnilnik npm
ThreadExample2.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'); } }
Izhod:
V zgornjem primeru izvajamo večnitnost z implementacijo zagonskega vmesnika. Če želite izvedeti več o večnitnosti, Klikni tukaj .