Postoje dva načina za stvaranje niti:
- Proširenjem klase Thread
- 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:
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
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 ...