logo

Niti Java | Kako ustvariti nit v Javi

Obstajata dva načina za ustvarjanje niti:

  1. Z razširitvijo razreda Thread
  2. Z implementacijo vmesnika Runnable.

Razred niti:

Razred Thread nudi konstruktorje in metode za ustvarjanje in izvajanje operacij v niti. Razred Thread razširja razred Object in izvaja vmesnik Runnable.

Pogosto uporabljeni konstruktorji razreda niti:

  • nit()
  • Nit (ime niza)
  • Nit (Runnable r)
  • Nit (Runnable r, ime niza)

Pogosto uporabljene metode razreda Thread:

    javni void run():se uporablja za izvajanje dejanja za nit.javni void start():zažene izvajanje niti. JVM pokliče metodo run() v niti.javno prazno spanje (dolge milisekunde):Povzroči, da nit, ki se trenutno izvaja, zaspi (začasno prekine izvajanje) za določeno število milisekund.javno prazno pridružitev():čaka, da nit umre.javno prazno pridružitev (dolge milisekunde):čaka, da nit umre za določene milisekunde.public int getPriority():vrne prednost niti.public int setPriority(int priority):spremeni prioriteto niti.javni niz getName():vrne ime niti.public void setName(ime niza):spremeni ime niti.javna nit currentThread():vrne referenco trenutno izvajajoče se niti.public int getId():vrne ID niti.javni Thread.State getState():vrne stanje niti.javni logični isAlive():preveri, ali je nit živa.javni void yield():povzroči, da se trenutno izvajajoči predmet niti začasno zaustavi in ​​omogoči izvajanje drugih niti.javni void suspend():se uporablja za prekinitev niti (depricated).javni neveljaven življenjepis():se uporablja za nadaljevanje začasno ustavljene niti (depricated).javni void stop():se uporablja za zaustavitev niti (depricated).javni logični isDaemon():preizkusi, ali je nit demonska nit.public void setDaemon(boolean b):označi nit kot demonsko ali uporabniško nit.javna prazna prekinitev():prekine nit.javni logični isInterrupted():preveri, če je bila nit prekinjena.javna statična logična vrednost prekinjena():preveri, ali je bila trenutna nit prekinjena.

Zagonski vmesnik:

Vmesnik Runnable bi moral implementirati vsak razred, katerega primerke naj bi izvajala nit. Zagonski vmesnik ima samo eno metodo z imenom run().

štetje razločno
    javni void run():se uporablja za izvajanje dejanja za nit.

Začetek niti:

The metoda start(). of Thread razred se uporablja za zagon novo ustvarjene niti. Opravlja naslednje naloge:

  • Začne se nova nit (z novim nizom klicev).
  • Nit se premakne iz stanja New v stanje Runnable.
  • Ko nit dobi priložnost za izvedbo, se bo zagnala njena ciljna metoda run().

1) Primer niti Java z razširitvijo razreda Thread

Ime 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(); } } 

Izhod:

seznam kot niz
 thread is running... 

2) Primer niti Java z implementacijo vmesnika Runnable

Ime 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(); } } 

Izhod:

 thread is running... 

Če ne razširjate razreda Thread, vaš objekt razreda ne bo obravnavan kot predmet niti. Zato morate eksplicitno ustvariti objekt razreda Thread. Posredujemo objekt vašega razreda, ki izvaja Runnable, tako da se lahko izvaja metoda vašega razreda run().

3) Uporaba razreda Thread: Thread(String Name)

Razred Thread lahko neposredno uporabimo za ustvarjanje novih niti z uporabo zgoraj definiranih konstruktorjev.

Ime datoteke: Moja nit1.java

java seznam
 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); } } 

Izhod:

 My first thread 

4) Uporaba razreda Thread: Thread(Runnable r, String name)

Upoštevajte naslednji program.

Ime datoteke: MyThread2.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); } } 

Izhod:

 My new thread Now the thread is running ...