logo

Java niti | Kako stvoriti nit u Javi

Postoje dva načina za stvaranje niti:

  1. Proširenjem klase Thread
  2. Implementacijom Runnable sučelja.

Klasa niti:

Klasa Thread pruža konstruktore i metode za stvaranje i izvođenje operacija na niti. Klasa Thread proširuje klasu Object i implementira Runnable sučelje.

Često korišteni konstruktori klase niti:

  • Nit()
  • Nit (naziv niza)
  • Nit (Runnable r)
  • Thread (Runnable r, String name)

Često korištene metode klase Thread:

    javni void run():koristi se za izvođenje akcije za nit.javni void start():pokreće izvođenje niti.JVM poziva metodu run() na niti.javni prazni san (duge milisekunde):Uzrokuje dretu koja se trenutno izvodi u stanje mirovanja (privremeno prekida izvršenje) na određeni broj milisekundi.javno prazno pridruživanje():čeka da nit umre.javno prazno pridruživanje (duge milisekunde):čeka da nit umre navedene milisekunde.public int getPriority():vraća prioritet niti.javni int setPriority(int prioritet):mijenja prioritet niti.javni niz getName():vraća naziv niti.public void setName(String name):mijenja naziv niti.javna nit trenutna nit():vraća referencu niti koja se trenutno izvodi.public int getId():vraća ID niti.javni Thread.State getState():vraća stanje niti.javni booleov isAlive():testira je li nit živa.javni void yield():uzrokuje da objekt niti koji se trenutno izvodi privremeno pauzira i dopušta izvođenje drugih niti.javna void obustava():koristi se za obustavu niti (oduzeto).javni nevažeći životopis():koristi se za nastavak suspendirane niti (depricated).javni void stop():koristi se za zaustavljanje niti (oduzeto).javni booleov isDaemon():testira je li nit demonska nit.public void setDaemon(boolean b):označava nit kao daemon ili korisničku nit.javni void prekid():prekida nit.javni booleov isInterrupted():testira da li je nit prekinuta.javni statički Booleov prekinut():testira je li trenutna nit prekinuta.

Pokretljivo sučelje:

Sučelje Runnable treba implementirati bilo koja klasa čije su instance namijenjene za izvršavanje niti. Runnable sučelje ima samo jednu metodu pod nazivom run().

isprobajte strukturu podataka
    javni void run():koristi se za izvođenje akcije za nit.

Pokretanje niti:

The metoda start(). klasa Thread koristi se za pokretanje novostvorene niti. Obavlja sljedeće zadatke:

  • Počinje nova nit (s novim nizom poziva).
  • Nit se pomiče iz stanja New u stanje Runnable.
  • Kada nit dobije priliku za izvršenje, pokrenut će se njezina ciljna metoda run().

1) Primjer Java niti proširenjem klase Thread

Naziv datoteke: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Izlaz:

abeceda u broj
 thread is running... 

2) Primjer Java niti implementacijom Runnable sučelja

Naziv datoteke: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Izlaz:

 thread is running... 

Ako ne proširujete klasu Thread, vaš objekt klase neće se tretirati kao objekt niti. Dakle, morate eksplicitno kreirati objekt klase Thread. Prosljeđujemo objekt vaše klase koji implementira Runnable kako bi se metoda vaše klase run() mogla izvršiti.

3) Korištenje klase niti: Nit (naziv niza)

Možemo izravno koristiti klasu Thread za stvaranje novih niti pomoću gore definiranih konstruktora.

Naziv datoteke: Moja nit1.java

xd značenje
 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Izlaz:

 My first thread 

4) Korištenje klase Thread: Thread(Runnable r, String name)

Pridržavajte se sljedećeg programa.

Naziv datoteke: Moja nit2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Izlaz:

 My new thread Now the thread is running ...