Obstajata dva načina za ustvarjanje niti:
- Z razširitvijo razreda Thread
- 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:
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
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 ...